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
二维码