diff options
author | Jack Sangdahl <[email protected]> | 2025-06-25 19:23:59 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2025-06-25 19:23:59 -0600 |
commit | 0af3b7c97c98d1e13c0170d900cbeb8d97f84ec5 (patch) | |
tree | 68576d703ade1715f50ffc0fe2237286aa6a42ca /longest_binary_subseq_leq_k.py | |
parent | d25a259a2484f14978ffe5e1cc350560e30445b0 (diff) | |
download | leetcode-0af3b7c97c98d1e13c0170d900cbeb8d97f84ec5.tar.gz leetcode-0af3b7c97c98d1e13c0170d900cbeb8d97f84ec5.zip |
2311. longest binary subsequence less than or equal to k
Diffstat (limited to 'longest_binary_subseq_leq_k.py')
-rw-r--r-- | longest_binary_subseq_leq_k.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/longest_binary_subseq_leq_k.py b/longest_binary_subseq_leq_k.py new file mode 100644 index 0000000..e07204a --- /dev/null +++ b/longest_binary_subseq_leq_k.py @@ -0,0 +1,29 @@ +# 2311. Longest Binary Subsequence Less Than or Equal to K + +""" +you are given a binary string 's' and a positive integer 'k'. return the +length of the longest subsequence of 's' that makes up a binary number less +than or equal to 'k'. note the subsequence can contain leading zeros, the +empty string is considered to be equal to 0, and a subsequence is a string +that can be derived from another string by deleting some or no characters +without changing the order of the remaining characters. +""" + + +class Solution(object): + def longestSubsequence(self, s, k): + """ + :type s: str + :type k: int + :rtype: int + """ + i = 0 + while int(s[-i - 1 :], 2) <= k and i < 32 and i < len(s): + i += 1 + return s[:-i].count("0") + i + + +if __name__ == "__main__": + obj = Solution() + print(obj.longestSubsequence(s="1001010", k=5)) + print(obj.longestSubsequence(s="00101001", k=1)) |