java.lang.Object
g2001_2100.s2030_smallest_k_length_subsequence_with_occurrences_of_a_letter.Solution

public class Solution extends java.lang.Object
2030 - Smallest K-Length Subsequence With Occurrences of a Letter.

Hard

You are given a string s, an integer k, a letter letter, and an integer repetition.

Return the lexicographically smallest subsequence of s of length k that has the letter letter appear at least repetition times. The test cases are generated so that the letter appears in s at least repetition times.

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.

A string a is lexicographically smaller than a string b if in the first position where a and b differ, string a has a letter that appears earlier in the alphabet than the corresponding letter in b.

Example 1:

Input: s = “leet”, k = 3, letter = “e”, repetition = 1

Output: “eet”

Explanation: There are four subsequences of length 3 that have the letter ‘e’ appear at least 1 time:

  • “lee” (from “leet”)

  • “let” (from “leet”)

  • “let” (from “leet”)

  • “eet” (from “leet”)

The lexicographically smallest subsequence among them is “eet”.

Example 2:

example-2

Input: s = “leetcode”, k = 4, letter = “e”, repetition = 2

Output: “ecde”

Explanation: “ecde” is the lexicographically smallest subsequence of length 4 that has the letter “e” appear at least 2 times.

Example 3:

Input: s = “bb”, k = 2, letter = “b”, repetition = 2

Output: “bb”

Explanation: “bb” is the only subsequence of length 2 that has the letter “b” appear at least 2 times.

Constraints:

  • 1 <= repetition <= k <= s.length <= 5 * 104
  • s consists of lowercase English letters.
  • letter is a lowercase English letter, and appears in s at least repetition times.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    java.lang.String
    smallestSubsequence(java.lang.String s, int k, char letter, int repetition)
     

    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

    • smallestSubsequence

      public java.lang.String smallestSubsequence(java.lang.String s, int k, char letter, int repetition)