子序列与子串理解错误了,一直以为是子串,看了半天思路没对上,
【思路】 倒序遍历,如果是1,则比大小,如果是0则添加。
【代码】
class Solution:
def longestSubsequence(self, s: str, k: int) -> int:
"""
倒序遍历字符串
"""
if int(s,2) <= k:
return len(s)
ans = ""
sign = True
for char in s[::-1]:
if char == '1':
if sign:
if int(char+ans,2)>k:
sign = False
else:
ans = char + ans
else:
ans = char + ans
return len(ans)