Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 모든 그룹 뒤에 같은 길이의 b 그룹이 있는지 확인하십시오.

<시간/>

문자 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
  • a_count :=a_count - 1
  • 나는 :=나는 + 1
  • a_count가 0이 아니면
    • 거짓을 반환
  • 참 반환
  • 예시

    이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

    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