leetcode767. 重构字符串

记录上一个写入的字母,找除了这个字母以外的出现次数最多的字母插入。
class Solution {
public:
string reorganizeString(string S) {
int alp[26];
int i;
for(i=0;i<26;i++){
alp[i]=0;
}
for(i=0;i<S.length();i++){
alp[S[i]-'a']++;
}
string ans="";
int maxx,tmp=-1,maxpos;
while(ans.length()<S.length()){
maxx=0;
maxpos=-1;
for(i=0;i<26;i++){
if(alp[i]>maxx&&i!=tmp){
maxx=alp[i];
maxpos=i;
}
}
if(maxpos==-1) return "";
ans+=(char)('a'+maxpos);
alp[maxpos]--;
tmp=maxpos;
}
return ans;
}
};

浙公网安备 33010602011771号