java.lang.Object
g2301_2400.s2311_longest_binary_subsequence_less_than_or_equal_to_k.Solution

public class Solution extends java.lang.Object
2311 - Longest Binary Subsequence Less Than or Equal to K.

Medium

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 zeroes.
  • The empty string is considered to be equal to 0.
  • 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.

Example 1:

Input: s = “1001010”, k = 5

Output: 5

Explanation: The longest subsequence of s that makes up a binary number less than or equal to 5 is “00010”, as this number is equal to 2 in decimal.

Note that “00100” and “00101” are also possible, which are equal to 4 and 5 in decimal, respectively.

The length of this subsequence is 5, so 5 is returned.

Example 2:

Input: s = “00101001”, k = 1

Output: 6

Explanation: “000001” is the longest subsequence of s that makes up a binary number less than or equal to 1, as this number is equal to 1 in decimal.

The length of this subsequence is 6, so 6 is returned.

Constraints:

  • 1 <= s.length <= 1000
  • s[i] is either '0' or '1'.
  • 1 <= k <= 109
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    longestSubsequence(java.lang.String s, int k)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • longestSubsequence

      public int longestSubsequence(java.lang.String s, int k)