LeetCode 1576 替换所有的问号[字符串] HERODING的LeetCode之路

在这里插入图片描述
解题思路:
如果考虑头尾的问号,那么就会多出需要判断,最简单的方法是在首尾添加任意字母,让所有的问号都被包围起来,再一个一个遍历寻找,找到后,用a,b,c三个字符就可以替换(根据前后判断选择),代码如下:

class Solution {
public:
    string modifyString(string s) {
        int n = s.size();
        s.push_back('a');
        s.insert(0, 1, 'a');
        for(int i = 1; i < n + 1; i ++) {
            if(s[i] != '?') continue;
            for(char c = 'a'; c <= 'c'; c ++) {
                if(s[i - 1] != c && s[i + 1] != c) {
                    s[i] = c;
                    break;
                }
            }
            
        }
        return s.substr(1, n);
    }
};

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>