Program to find k-th Lexicographical String from all Happy Strings of length n in Java 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 of i from 1 to s.length - 1 (string is 1-indexed). class MainProgram{ private String getHappyString(int n, int k) {
char[] arr = {'a', 'b', 'c'};
String res="";
List<String> list=new ArrayList<>();
generatePerm(arr, n, res, list);
if(list.size() >= k)
res=list.get(k-1);
return res;
}
private void generatePerm(char[] arr, int n, String res,
List<String> list){
if(n == 0){
list.add(res);
return;
}
for(int i=0; i<arr.length; i++){
if(res == "" || res.charAt(res.length()-1) != arr[i]){
String pre=res+arr[i];
generatePerm(arr, n-1, pre, list);
}
}
}