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