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

Python에서 문자열에 m개의 연속적인 1 또는 0이 있는지 확인

<시간/>

이진 문자열 s와 다른 값 m이 있다고 가정하면 문자열에 m개의 연속적인 1이 있는지 m개의 연속적인 0이 있는지 확인해야 합니다.

따라서 입력이 s ="1110111000111", m =3과 같으면 0과 1이 연속해서 세 개 있기 때문에 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • str_size :=s의 크기
  • count_0 :=0, count_1 :=0
  • 0 ~ str_size - 2 범위의 i에 대해
    • s[i]가 '0'과 같으면
      • count_1 :=0
      • count_0 :=count_0 + 1
    • 그렇지 않으면
      • count_0 :=0
      • count_1 :=count_1 + 1
    • count_0이 m과 같거나 count_1이 m과 같으면
      • 참 반환
  • 거짓을 반환

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

예시

def solve(s, m):
   str_size = len(s)
   count_0 = 0
   count_1 = 0
   for i in range(0, str_size - 1):
      if (s[i] == '0'):
         count_1 = 0
         count_0 += 1
      else :
         count_0 = 0
         count_1 += 1
      if (count_0 == m or count_1 == m):
         return True
   return False
s = "1110111000111"
m = 3
print(solve(s, m))

입력

"1110111000111", 3

출력

True