优选算法_模拟_替换所有的‘?‘_C++

一.题目解析:

替换一个string里面所有的'?',且替换的字母不能和左右两边相同

算法解析:模拟

遍历数组找到string里面的'?'替换即可,考验的是代码编写的能力

1.首先我们需要一个循环找到'?'

for(int i=0;i<n;i++)

2.遍历字母表,判断左右是否相等,不相等->插入,相等->下一个,边界情况是第一个位置和最后一个位置,如果是第一个位置就不用判断前一个位置,如果是最后一个位置就不用判断下一个位置

for(char ch='a';ch<='z';ch++){

if(i==0||ch!=s[i-1])&&(i==n-1||ch!=s[i+1]) s[i]=ch;

}

二.代码编写

cpp 复制代码
class Solution {
public:
    string modifyString(string s) {
        int n=s.size();
        for(int i=0;i<n;i++)
        {
            if(s[i]=='?')
            {
                for(char ch='a';ch<='z';ch++)
                {
                    if((i==0||ch!=s[i-1])&&(i==n-1||ch!=s[i+1]))
                    //如果是第一个位置和最后一个位置就不用判断相等
                    {
                        s[i]=ch;
                    }
                }
            }
        }
        return s;
    }
};
相关推荐
LDR0061 小时前
如何使用OpenClaw提高工作效率?
数据结构·算法
笨笨马甲1 小时前
Qt 人脸识别
开发语言·qt
币之互联万物1 小时前
LLM 偏好算法解析:大语言模型内容收录倾向与 NEOXGEO 技术底蕴
人工智能·算法·语言模型
菜鸟小九1 小时前
hot100(81-90)
java·数据结构·算法
摸鱼仙人~2 小时前
Vue Todo 实战练习教程(简略版)
前端·javascript·vue.js
炽烈小老头2 小时前
【每天学习一点算法 2026/03/20】单词搜索
学习·算法
Riemann~~2 小时前
ros2写一个可以修改参数的node
开发语言·python·ros2·机器人系统
无巧不成书02182 小时前
Java核心技术全景解析:从白皮书到实战踩坑
java·开发语言
Roy_Sashulin2 小时前
基于AI的Java编程平台
java·开发语言·人工智能·sashulin·deepseek