优选算法_模拟_替换所有的‘?‘_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;
    }
};
相关推荐
柚yuzumi15 分钟前
变量明明定义了,为什么访问不到?深入理解 JavaScript 作用域
javascript
ysa05103019 分钟前
【板子】短序列dp(换成维护更小常数维度的dp)
c++·笔记·算法·板子
shwill12321 分钟前
PID 算法(三)--- 增量 PID ↔ 单神经元 PID 等价映射
linux·算法
long31627 分钟前
Java 新手入门与实战开发指南
java·开发语言
何时梦醒30 分钟前
React + TypeScript + Vite 实战:从零构建 Color Picker 应用
前端·javascript·架构
摩西蒙31 分钟前
计算机网络
开发语言·计算机网络·php
Highcharts.js34 分钟前
基于Highcharts开发的OHLC 股票K线图完全指南
javascript·信息可视化·echarts·数据可视化·highcharts·ohlc
默_笙37 分钟前
😋 我让 DeepSeek-R1 在浏览器本地跑了起来,后端同事说"你认真的?"
前端·javascript
山峰哥42 分钟前
数据库性能救星:Explain执行计划深度拆解
服务器·开发语言·数据库·sql·启发式算法
wabs6662 小时前
关于图论【卡码网110.字符串迁移的思考】
数据结构·算法·图论