From ec6da3d64ef535445c423ac7fd687d7074df0d79 Mon Sep 17 00:00:00 2001 From: Lubos Kolouch Date: Tue, 8 Aug 2023 11:50:37 +0200 Subject: feat(challenge-196/lubos-kolouch/perl,python/): Challenge 196 LK Perl Python --- challenge-196/lubos-kolouch/python/ch-1.py | 29 +++++++++++++++++++++++++++++ challenge-196/lubos-kolouch/python/ch-2.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 challenge-196/lubos-kolouch/python/ch-1.py create mode 100644 challenge-196/lubos-kolouch/python/ch-2.py (limited to 'challenge-196/lubos-kolouch/python') diff --git a/challenge-196/lubos-kolouch/python/ch-1.py b/challenge-196/lubos-kolouch/python/ch-1.py new file mode 100644 index 0000000000..2a53fbee40 --- /dev/null +++ b/challenge-196/lubos-kolouch/python/ch-1.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from typing import List + + +def find_pattern_132(nums: List[int]) -> List[int]: + + for i in range(len(nums)): + + for j in range(i+1, len(nums)): + + for k in range(j+1, len(nums)): + + if nums[i] < nums[k] < nums[j]: + + return [nums[i], nums[j], nums[k]] + + return [] + + +# Test cases +print(find_pattern_132([3, 1, 4, 2])) # Expected: [1, 4, 2] + +print(find_pattern_132([1, 2, 3, 4])) # Expected: [] + +print(find_pattern_132([1, 3, 2, 4, 6, 5])) # Expected: [1, 3, 2] + +print(find_pattern_132([1, 3, 4, 2])) # Expected: [1, 3, 2] diff --git a/challenge-196/lubos-kolouch/python/ch-2.py b/challenge-196/lubos-kolouch/python/ch-2.py new file mode 100644 index 0000000000..fe83254399 --- /dev/null +++ b/challenge-196/lubos-kolouch/python/ch-2.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +def find_ranges(array): + ranges = [] + start, end = None, None + + for num in array: + if start is None: + start = end = num + elif num == end + 1: + end = num + else: + if end > start: + ranges.append([start, end]) + start = end = num + + if start is not None and end > start: + ranges.append([start, end]) + + return ranges + + +# Test cases +assert find_ranges([1, 3, 4, 5, 7]) == [[3, 5]], "Example 1" +assert find_ranges([1, 2, 3, 6, 7, 9]) == [[1, 3], [6, 7]], "Example 2" +assert find_ranges([0, 1, 2, 4, 5, 6, 8, 9]) == [ + [0, 2], [4, 6], [8, 9]], "Example 3" + +print("All tests passed!") -- cgit