具体思路:
贪心算间隔;
少的元素一个为一个单位,n个可以组成n+1个空;
多的元素必定会把n+1个空填满,并且还有剩余;
所以循环填充n+1个空即可;
具体代码:
class Solution {
public:
string strWithout3a3b(int a, int b) {
if(a>=b){
return fun('b','a',b,a);
}else{
return fun('a','b',a,b);
}
}
string fun(char schar,char lchar,int a,int b){
vector<string>vec(a+1,"");
int index=0;
string ret="";
while(b!=0){
b--;
vec[index]+=lchar;
index=(index+1)%vec.size();
}
for(int i=0;i<vec.size();i++){
ret+=vec[i]+schar;
}
ret.pop_back();
return ret;
}
};