문자 a와 b만 있는 소문자 문자열이 있다고 가정합니다. 연속적인 a의 모든 그룹 다음에 동일한 길이의 연속적인 b의 그룹이 오는지 확인해야 합니다.
따라서 입력이 s ="abaaabbbbaabbaabbab"과 같으면 모든 그룹이 (ab), (aaabbb), (aabb), (aabb), (ab)이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- a_count :=0, string_len :=s의 크기
- i :=0
- 내가
- i
- a_count :=a_count + 1
- 나는 :=나는 + 1
- i
- 거짓을 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(s): a_count = 0 string_len = len(s) i = 0 while i < string_len: while i < string_len and s[i] == 'a': a_count += 1 i += 1 while i < string_len and s[i] == 'b': a_count -= 1 i += 1 if a_count != 0: return False return True s = "abaaabbbaabbaabbab" print(solve(s))
입력
"abaaabbbaabbaabbab"
출력
True