Microsoft Online Assessment (OA) - String Without 3 Identical Consecutive Letters
Given a string S
having lowercase English letters, returns a string with no instances of three identical consecutive letters,
obtained from S
by deleting the minimum possible number of letters.
Example 1:
Input: eedaaad
Output: eedaad
Explanation:
One occurrence of letter a
is deleted.
Example 2:
Input: xxxtxxx
Output: xxtxx
Explanation:
Note that letter x
can occur more than three times in the returned string if the occurrences are not consecutive.
Example 3:
Input: uuuuxaaaaxum
Output: uuxaaxum
Try it yourself
Implementation
1def filter_string(s: str) -> str:
2 news = s[0:2]
3 for i in range(2, len(s)):
4 # Do not append if the previous chars are the same
5 if s[i] != s[i - 1] or s[i] != s[i - 2]:
6 news += s[i]
7 return news
8
9if __name__ == '__main__':
10 s = input()
11 res = filter_string(s)
12 print(res)
13