江门英文网站建设,公司企业建站报价,东莞合一网络科技有限公司,图片代码转wordpress个人主页#xff1a;Lei宝啊
愿所有美好如期而遇 本题链接
力扣#xff08;LeetCode#xff09;
输入描述
string modifyString(string s) 输入一个字符串#xff0c;字符串中仅包含小写字母和 ‘?’ 字符。
输出描述
将问号替换为小写字母#xff0c;且这个替… 个人主页Lei宝啊
愿所有美好如期而遇 本题链接
力扣LeetCode
输入描述
string modifyString(string s) 输入一个字符串字符串中仅包含小写字母和 ‘?’ 字符。
输出描述
将问号替换为小写字母且这个替换的小写字母与他前后的字母不相同。
算法分析
模拟实际上就是根据题目描述做题不用考虑什么二分前缀和等等相对于其他算法比较简单就是单纯的考察代码能力。
本题我们直接循环遍历数组如果在 i 位置遇到 ? 就循环26个小写英文字母哪个字母大小不等于 i 位置就使s[i] 这个英文字母; 我们需要另外判断边界情况在0位置和n-1位置这两个位置如果是 ? 那么一个不用比前一个不用比后。
解题源码
class Solution {
public:string modifyString(string s) {int n s.size();for(int i0; in; i){if(s[i] ?){ for(int j97; j122; j) {if(i ! 0 s[i-1] ! j s[i1] ! j) {s[i] j;break;}else if(i 0 s[1] ! j){s[0] j;break;}else if(i n-1 s[n-2] ! j){s[n-1] j;break;}} }}return s;}
};