一.题目解析:

替换一个string里面所有的'?',且替换的字母不能和左右两边相同
算法解析:模拟
遍历数组找到string里面的'?'替换即可,考验的是代码编写的能力
1.首先我们需要一个循环找到'?'
for(int i=0;i<n;i++)
2.遍历字母表,判断左右是否相等,不相等->插入,相等->下一个,边界情况是第一个位置和最后一个位置,如果是第一个位置就不用判断前一个位置,如果是最后一个位置就不用判断下一个位置
for(char ch='a';ch<='z';ch++){
if(i==0||ch!=s[i-1])&&(i==n-1||ch!=s[i+1]) s[i]=ch;
}
二.代码编写
cpp
class Solution {
public:
string modifyString(string s) {
int n=s.size();
for(int i=0;i<n;i++)
{
if(s[i]=='?')
{
for(char ch='a';ch<='z';ch++)
{
if((i==0||ch!=s[i-1])&&(i==n-1||ch!=s[i+1]))
//如果是第一个位置和最后一个位置就不用判断相等
{
s[i]=ch;
}
}
}
}
return s;
}
};