解题思路:
(1)递归求解所有情况
class Solution {
private:
vector<string> v;
public:
void comp(string s,string str,int k,int index) {
if(k==0) {
v.push_back(str);
return;
}
for(int i=0;i<s.length();i++) {
if(index!=0) {
if(str[index-1]!=s[i]) str[index]=s[i];
else continue;
} else {
str[index]=s[i];
}
switch(s[i]) {
case 'a':
comp("bca",str,k-1,index+1);
break;
case 'b':
comp("acb",str,k-1,index+1);
break;
case 'c':
comp("abc",str,k-1,index+1);
break;
}
}
}
string getHappyString(int n, int k) {
string str(n,'d');
comp("abc",str,n,0);
if(k>v.size()) return "";
else return v[k-1];
}
};