思路:
只是跟相邻两个字符不可以相同,所以用三个字母就可以完成填充。遍历判断就可以了。
代码:
class Solution { public: string modifyString(string s) { char ans[]={'a','b','c'}; for(int i=0;i<s.size();i++){ if(s[i]=='?'){ if(i==0){ for(int j=0;j<3;j++){ if(ans[j]==s[i+1]) continue; s[i]=ans[j];break; } } else if(i==s.size()-1){ for(int j=0;j<3;j++){ if(ans[j]==s[i-1]) continue; s[i]=ans[j];break; } } else{ for(int j=0;j<3;j++){ if(ans[j]==s[i-1]||ans[j]==s[i+1]) continue; s[i]=ans[j];break; } } } } return s; } };