
解題思路:
如果考慮頭尾的問號,那么就會多出需要判斷,最簡單的方法是在首尾添加任意字母,讓所有的問號都被包圍起來,再一個一個遍歷尋找,找到后,用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);
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/404075.html
標籤:其他
