0
点赞
收藏
分享

微信扫一扫

【力扣·每日一题】1576. 替换所有的问号(C++ 字符串模拟 思维)


​​linkk​​

【力扣·每日一题】1576. 替换所有的问号(C++ 字符串模拟 思维)_i++

思路:

只是跟相邻两个字符不可以相同,所以用三个字母就可以完成填充。遍历判断就可以了。

代码:

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;
}
};


举报

相关推荐

0 条评论