跳到主要内容

1576.替换所有的问号

链接:1576.替换所有的问号
难度:Easy
标签:字符串
简介:给你一个仅包含小写英文字母和 '?' 字符的字符串 s,请你将所有的 '?' 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。

题解 1 - cpp

  • 编辑时间:2022-01-05
  • 内存消耗:5.8MB
  • 编程语言:cpp
  • 解法介绍:遍历到问号进行重新赋值 。
class Solution {
public:
string modifyString(string s) {
for (int i = 0, n = s.size(); i < n; i++) {
if (s[i] != '?') continue;
char prev = i > 0 ? s[i - 1] : '\0',
next = i < n - 1 ? s[i + 1] : '\0';
for (char ch = 'a'; ch <= 'z'; ch++) {
if (prev != ch && next != ch) {
s[i] = ch;
break;
}
}
}
return s;
}
};