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

一.题目解析:

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

算法解析:模拟

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

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

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

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

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

if(i==0||ch!=si-1)&&(i==n-1||ch!=si+1) si=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;
    }
};
相关推荐
gugucoding7 分钟前
25. 【C语言】二进制文件与随机读写
c语言·开发语言
北极星日淘8 分钟前
中古货品品相评级算法实战|Java权重计分实现标准化五级品相体系
开发语言·python
林恒smileZAZ14 分钟前
`Array(100).map(() => 1)` 为什么全为空?
前端·javascript
小巧的砖头36 分钟前
C#会重蹈覆辙吗?系列之2:反射及元数据的性能问题
开发语言·前端·c#
凯瑟琳.奥古斯特38 分钟前
力扣1009补码解法C++实现
开发语言·c++·算法·leetcode·职场和发展
KaMeidebaby42 分钟前
卡梅德生物技术快报|蛋白的叠氮基修饰:实操解析:核酸模板耦合蛋白的叠氮基修饰实现靶蛋白定点共价标记
前端·人工智能·物联网·算法·百度
2601_9636459243 分钟前
【2026最新】MATLAB教程(附安装包,非常详细)
开发语言·matlab·信息可视化
闲猫2 小时前
Python 虚拟环境 virtualenv & uvicorn 服务搭建 & FAstAPI 使用
开发语言·python
通信仿真爱好者2 小时前
第【60期】--大规模MIMO系统信号检测算法误码率比较 --matlab完整代码+参考文章
算法·matlab·mimo·信号检测
AI科技星2 小时前
全域谱分析:无穷维超复数信息场分形统一场论——自然、量子、金融多重分形第一性原理完整体系(中英双语终稿)
人工智能·python·算法·金融·乖乖数学·全域数学