优选算法_模拟_替换所有的‘?‘_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;
    }
};
相关推荐
小陈工7 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
海清河晏1117 小时前
数据结构 | 单循环链表
数据结构·算法·链表
H Journey7 小时前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake
wuweijianlove11 小时前
算法性能的渐近与非渐近行为对比的技术4
算法
研究点啥好呢11 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
_dindong11 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法
AI成长日志11 小时前
【Agentic RL】1.1 什么是Agentic RL:从传统RL到智能体学习
人工智能·学习·算法
午安~婉11 小时前
Electron桌面应用聊天(续)
前端·javascript·electron
lly20240611 小时前
C 标准库 - `<stdio.h>`
开发语言
沫璃染墨11 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++