1016. Binary String With Substrings Representing 1 To N
- Binary String With Substrings Representing 1 To N python solution
题目描述
Given a binary string S (a string consisting only of ‘0’ and '1’s) and a positive integer N, return true if and only if for every integer X from 1 to N, the binary representation of X is a substring of S.
解析
我们只需要搜索在n和2**(a-1)之间的数字,因为其他比这小的数字都是他们的子集
值得注意的一点就是,"{0:b}".format(n)代表将十进制数写成二进制的形式。
class Solution:
def queryString(self, S: str, N: int) -> bool:
import math
a=int(math.log(N,2))
n=N
while n>2**(a-1):
#convert n to binary
if "{0:b}".format(n) not in S:
return False
n-=1
return True
Reference
https://leetcode.com/problems/binary-string-with-substrings-representing-1-to-n/discuss/283982/python-3-faster-than-100-with-o(1)-memory