1516. The K Th Lexicographical String Of All Happy Strings Of Length N¶
Difficulty: Medium
LeetCode Problem View on GitHub
1516. The k-th Lexicographical String of All Happy Strings of Length n
Medium
A happy string is a string that:
- consists only of letters of the set
['a', 'b', 'c']. s[i] != s[i + 1]for all values ofifrom1tos.length - 1(string is 1-indexed).
For example, strings "abc", "ac", "b" and "abcbabcbcb" are all happy strings and strings "aa", "baa" and "ababbc" are not happy strings.
Given two integers n and k, consider a list of all happy strings of length n sorted in lexicographical order.
Return the kth string of this list or return an empty string if there are less than k happy strings of length n.
Example 1:
Input: n = 1, k = 3 Output: "c" Explanation: The list ["a", "b", "c"] contains all happy strings of length 1. The third string is "c".
Example 2:
Input: n = 1, k = 4 Output: "" Explanation: There are only 3 happy strings of length 1.
Example 3:
Input: n = 3, k = 9 Output: "cab" Explanation: There are 12 different happy string of length 3 ["aba", "abc", "aca", "acb", "bab", "bac", "bca", "bcb", "cab", "cac", "cba", "cbc"]. You will find the 9th string = "cab"
Constraints:
1 <= n <= 101 <= k <= 100
Solution¶
class Solution {
private ArrayList<String> res;
public String getHappyString(int n, int k) {
res = new ArrayList<>();
solve(n, "");
Collections.sort(res);
if (res.size() < k) return "";
return res.get(k - 1);
}
private void solve(int n, String current) {
if (current.length() == n) {
res.add(current);
return;
}
if (current.length() == 0) {
solve(n, current + "a");
solve(n, current + "b");
solve(n, current + "c");
}
else {
if (current.charAt(current.length() - 1) == 'a') {
solve(n, current + "b");
solve(n, current + "c");
}
else if (current.charAt(current.length() - 1) == 'b') {
solve(n, current + "a");
solve(n, current + "c");
}
else if (current.charAt(current.length() - 1) == 'c') {
solve(n, current + "a");
solve(n, current + "b");
}
}
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here