두 개의 소문자 문자열 s와 t가 있다고 가정합니다. 때로는 모음을 입력할 때 키가 길게 눌러져 모음이 1회 이상 반복되는 경우가 있습니다. s를 나타내는 t가 입력될 수 있는지 여부를 확인해야 합니다.
따라서 입력이 s ="mine" t ="miiine"과 같으면 모음 'i'가 세 번 반복되므로 출력은 True가 되고 다른 문자는 괜찮습니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- s_len :=s의 크기
- t_len :=t의 크기
- j :=0
- 0 ~ s_len - 1 범위의 i에 대해
- s[i]가 t[j]와 같지 않으면
- 거짓을 반환
- s[i]가 모음이 아니면
- j :=j + 1
- 다음 반복으로 이동
- cnt_1 :=1
- i
- cnt_1 :=cnt_1 + 1
- 나는 :=나는 + 1
- s[i]가 t[j]와 같지 않으면
- cnt_2 :=1
- j
- cnt_2 :=cnt_2 + 1
- j :=j + 1
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
def isVowel(c): vowel = "aeiou" return c in vowel def solve(s, t): s_len = len(s) t_len = len(t) j = 0 for i in range(s_len): if s[i] != t[j]: return False if isVowel(s[i]) == False: j = j + 1 continue cnt_1 = 1 while i < s_len - 1 and (s[i] == s[i + 1]): cnt_1 = cnt_1 + 1 i = i + 1 cnt_2 = 1 while j < t_len - 1 and t[j] == s[i]: cnt_2 = cnt_2 + 1 j = j + 1 if cnt_1 > cnt_2: return False return True s = "mine" t = "miiine" print(solve(s, t))
입력
"mine", "miiine"
출력
True