Given a string s, partition the string into one or more substrings such that the characters in each substring are unique. That is, no letter appears in a single substring more than once.
Return the minimum number of substrings in such a partition.
Note that each character should belong to exactly one substring in a partition.
Example 1:
Input: s = "abacaba"
Output: 4
Explanation:
Two possible partitions are ("a","ba","cab","a") and ("ab","a","ca","ba").
It can be shown that 4 is the minimum number of substrings needed.
Example 2:
Input: s = "ssssss"
Output: 6
Explanation:
The only valid partition is ("s","s","s","s","s","s").
Constraints:
- 1 <= s.length <= 105
- s consists of only English lowercase letters.
class Solution:
def partitionString(self, s: str) -> int:
ans=0
exist=""
for i in range(len(s)):
if s[i] not in exist:
exist+=s[i]
else:
ans+=1
exist=s[i]
return ans +1 if exist else ans
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
1551. Minimum Operations to Make Array Equal (0) | 2023.04.17 |
---|---|
1877. Minimize Maximum Pair Sum in Array (0) | 2023.04.17 |
1817. Finding the Users Active Minutes (0) | 2023.04.17 |
2130. Maximum Twin Sum of a Linked List (0) | 2023.04.17 |
2125. Number of Laser Beams in a Bank (0) | 2023.04.17 |