39. 替换所有问号
题目链接:
题目描述:

题目示例:

解法(模拟):
算法思路:
这道题的核心在于模拟替换过程。遍历字符串,一旦遇到问号,就尝试用 'a' 到 'z' 的字符进行替换。关键在于确保新字符不与前后相邻的字符重复。
注意边界情况:如果问号在开头,只需检查后一个字符;如果在末尾,只需检查前一个字符;中间位置则需同时检查左右两侧。
C++ 算法代码:
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;
break;
}
}
}
}
s;
}
};








