diff --git a/easy/summary_ranges.py b/easy/summary_ranges.py new file mode 100644 index 0000000..3469b94 --- /dev/null +++ b/easy/summary_ranges.py @@ -0,0 +1,33 @@ +# https://leetcode.com/problems/summary-ranges + +from typing import List + +class Solution: + def summaryRanges(self, nums: List[int]) -> List[str]: + curr_num: List[int] = [] + result: List[str] = [] + for num in nums: + if len(curr_num) == 0: + curr_num.append(num) + continue + match len(curr_num): + case 0: + curr_num.append(num) + case 1: + if curr_num[0] + 1 == num: + curr_num.append(num) + else: + result.append(str(curr_num[0])) + curr_num = [num] + case 2: + if curr_num[1] + 1 == num: + curr_num[1] += 1 + else: + result.append('->'.join([str(curr_num[0]), str(curr_num[1])])) + curr_num = [num] + if len(curr_num) == 1: + result.append(str(curr_num[0])) + elif len(curr_num) == 2: + result.append('->'.join([str(curr_num[0]), str(curr_num[1])])) + return result +