From 092ad627625311f122a9bcb7b14d74d17cd53ac2 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 13 Aug 2026 05:09:07 -0600 Subject: [PATCH] adding algo --- .../round_7/optimal_partition_string.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/my_project/interviews/amazon_high_frequency_23/round_7/optimal_partition_string.py diff --git a/src/my_project/interviews/amazon_high_frequency_23/round_7/optimal_partition_string.py b/src/my_project/interviews/amazon_high_frequency_23/round_7/optimal_partition_string.py new file mode 100644 index 00000000..3f2117d6 --- /dev/null +++ b/src/my_project/interviews/amazon_high_frequency_23/round_7/optimal_partition_string.py @@ -0,0 +1,18 @@ +class Solution: + def partitionString(self, s: str) -> int: + + # 1-based positions: 0 means "character never seen" + last_pos = [0] * 26 + partitions = 0 + partition_start = 0 + + for i in range(len(s)): + + # last occurrence falls inside the open partition -> must cut + if last_pos[ord(s[i]) - ord('a')] >= partition_start: + partitions += 1 + partition_start = i + 1 + + last_pos[ord(s[i]) - ord('a')] = i + 1 + + return partitions \ No newline at end of file