문자열이 a^nb^n 패턴을 따르는지 여부를 확인해야 하는 문자열이 있다고 가정합니다. 이것은 실제로 n =3일 때 문자열이며 문자열은 "aaabbb"가 됩니다.
따라서 입력이 s ="aaaaabbbbb"와 같으면 출력은 a^5b^5 다음과 같이 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 크기 :=s의 크기
- 0에서 크기 - 1 사이의 i에 대해
- s[i]가 'a'와 같지 않으면
- 루프에서 나오다
- s[i]가 'a'와 같지 않으면
- i * 2가 크기와 같지 않으면
- 거짓을 반환
- i에서 크기 - 1까지의 범위에 있는 j에 대해
- s[j]가 'b'와 같지 않으면
- 거짓을 반환
- s[j]가 'b'와 같지 않으면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
def solve(s): size = len(s) for i in range(size): if s[i] != 'a': break if i * 2 != size: return False for j in range(i, size): if s[j] != 'b': return False return True s = "aaaaabbbbb" print(solve(s))
입력
"aaaaabbbbb"
출력
True