-
Notifications
You must be signed in to change notification settings - Fork 0
/
delete-characters-to-make-fancy-string_1957.py
41 lines (32 loc) · 1.34 KB
/
delete-characters-to-make-fancy-string_1957.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# A fancy string is a string where no three consecutive characters are equal.
# Given a string s, delete the minimum possible number of characters from s to make it fancy.
# Return the final string after the deletion. It can be shown that the answer will always be unique.
# Example 1:
# Input: s = "leeetcode"
# Output: "leetcode"
# Explanation:
# Remove an 'e' from the first group of 'e's to create "leetcode".
# No three consecutive characters are equal, so return "leetcode".
# Example 2:
# Input: s = "aaabaaaa"
# Output: "aabaa"
# Explanation:
# Remove an 'a' from the first group of 'a's to create "aabaaaa".
# Remove two 'a's from the second group of 'a's to create "aabaa".
# No three consecutive characters are equal, so return "aabaa".
# Example 3:
# Input: s = "aab"
# Output: "aab"
# Explanation: No three consecutive characters are equal, so return "aab".
# ---------------------------------------Runtime 958 ms Beats 17.59% Memory 18.6 MB Beats 36.48%---------------------------------------
# Solution O(n)
class Solution:
def makeFancyString(self, s: str) -> str:
letters: list = []
length: int = len(s)
for i in range(0, length):
if letters and (i + 1 < length) and (s[i - 1] == s[i] == s[i + 1]):
continue
else:
letters.append(s[i])
return "".join(letters)