때때로 숫자의 이진 표현을 다룰 때 숫자에 연속 1이 몇 개 있는지 알아내야 할 수도 있습니다. 이 기사에서는 이를 알아낼 수 있는 두 가지 방법을 보여줍니다.
분할 및 지도 사용
파이썬의 split 함수는 주어진 문자열을 여러 문자열로 분할하는 데 사용할 수 있습니다. 우리는 그것을 0으로 나누고 map 함수를 사용하여 생성된 분할 중에서 최대 길이를 찾습니다.
예시
data ='11110000111110000011111010101010101011111111'def Max_len_cons_1(data):print("연속되는 최대 개수:",max(map(len,data.split('1_len,Max))))출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
최대 연속 수:8정규 표현식 사용
파이썬의 re 모듈은 연속 1의 최대 수를 계산하는 데에도 사용할 수 있습니다. 여기에서 하나 이상의 1이 존재함을 나타내는 1+ 패턴을 찾습니다. 그런 다음 해당 패턴 중 최대 길이를 찾습니다.
예시
data ='11110000111110010011'import rethe_ones =re.findall(r"1+", data)print("자신의 블록:",the_ones)print("연속된 1의 최대 수 =", len(max( the_ones, 키=len)))출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
1의 블록:['1111', '11111', '1', '11']연속 1의 최대 개수 =5