0보다 1의 더 긴 연속 세그먼트
s
가 주어지면 true
의 가장 긴 연속 세그먼트가 1
의 0
의 가장 긴 연속 세그먼트보다 엄격하게 길면 s
를 반환하고, 그렇지 않으면 false
를 반환합니다.s = "110100010"
에서 1
s의 가장 긴 연속 세그먼트의 길이는 2
이고 0
s의 가장 긴 연속 세그먼트의 길이는 3
입니다. 0
가 없으면 0
의 가장 긴 연속 세그먼트는 길이가 0
인 것으로 간주됩니다. 1
이 없는 경우에도 마찬가지입니다.예 1:
입력: s = "1101"
출력: 참
설명:
1s의 가장 긴 연속 세그먼트의 길이는 2: "1101"입니다.
가장 긴 연속 세그먼트 0의 길이는 1: "1101"
1s의 세그먼트가 더 길기 때문에 true를 반환합니다.
예 2:
입력: s = "111000"
출력: 거짓
설명:
1s의 가장 긴 연속 세그먼트의 길이는 3: "111000"
가장 긴 연속 0 세그먼트의 길이는 3: "111000"
1s의 세그먼트는 더 길지 않으므로 false를 반환합니다.
예 3:
입력: s = "110100010"
출력: 거짓
설명:
1의 가장 긴 연속 세그먼트의 길이는 2: "110100010"
가장 긴 연속 0 세그먼트의 길이는 3: "110100010"
1s의 세그먼트는 더 길지 않으므로 false를 반환합니다.
제약:
1 <= s.length <= 100
s[i]
는 '0'
또는 '1'
입니다. 해결책:
class Solution:
def checkZeroOnes(self, s: str) -> bool:
s += "x"
longest = [0, 0]
curr = [0, 0]
for c in s:
if c == "x":
longest[0] = max(longest[0], curr[0])
longest[1] = max(longest[1], curr[1])
elif c == "1":
longest[0] = max(longest[0], curr[0])
curr[0] = 0
curr[1] += 1
elif c == "0":
longest[1] = max(longest[1], curr[1])
curr[1] = 0
curr[0] += 1
return longest[1] > longest[0]
Reference
이 문제에 관하여(0보다 1의 더 긴 연속 세그먼트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/longer-contiguous-segments-of-ones-than-zeros-15ej텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)