【力扣·每日一题】1576. 替换所有的问号(C++ 字符串模拟 思维)

简介: 【力扣·每日一题】1576. 替换所有的问号(C++ 字符串模拟 思维)

linkk

20200401134307494.png

思路:

只是跟相邻两个字符不可以相同,所以用三个字母就可以完成填充。遍历判断就可以了。

代码:

class Solution {
public:
    string modifyString(string s) {
        char ans[]={'a','b','c'};
        for(int i=0;i<s.size();i++){
            if(s[i]=='?'){
                if(i==0){
                    for(int j=0;j<3;j++){
                        if(ans[j]==s[i+1]) continue;
                        s[i]=ans[j];break;
                    }
                }
                else if(i==s.size()-1){
                    for(int j=0;j<3;j++){
                        if(ans[j]==s[i-1]) continue;
                        s[i]=ans[j];break;
                    }
                }
                else{
                    for(int j=0;j<3;j++){
                        if(ans[j]==s[i-1]||ans[j]==s[i+1]) continue;
                        s[i]=ans[j];break;
                    }
                }
            }
        }
        return s;
    }
};


目录
相关文章
|
3月前
|
搜索推荐 编译器 C语言
【C++核心】特殊的元素集合-数组与字符串详解
这篇文章详细讲解了C++中数组和字符串的基本概念、操作和应用,包括一维数组、二维数组的定义和使用,以及C风格字符串和C++字符串类的对比。
105 4
|
2月前
|
JavaScript
力扣3333.找到初始输入字符串Ⅱ
【10月更文挑战第9天】力扣3333.找到初始输入字符串Ⅱ
40 1
|
2月前
|
C++
Leetcode第43题(字符串相乘)
本篇介绍了一种用C++实现的字符串表示的非负整数相乘的方法,通过逆向编号字符串,将乘法运算转化为二维数组的累加过程,最后处理进位并转换为字符串结果,解决了两个大数相乘的问题。
29 9
|
6月前
|
索引
力扣随机一题 6/26 哈希表 数组 思维
力扣随机一题 6/26 哈希表 数组 思维
43 0
|
2月前
|
算法 C++
Leetcode第八题(字符串转换整数(atoi))
这篇文章介绍了LeetCode上第8题“字符串转换整数(atoi)”的解题思路和C++的实现方法,包括处理前导空格、正负号、连续数字字符以及整数溢出的情况。
22 0
|
2月前
【LeetCode 22】459.重复的子字符串
【LeetCode 22】459.重复的子字符串
32 0
|
2月前
【LeetCode 20】151.反转字符串里的单词
【LeetCode 20】151.反转字符串里的单词
25 0
|
2月前
【LeetCode 19】541.反转字符串II
【LeetCode 19】541.反转字符串II
24 0
|
2月前
【LeetCode 18】6.2.反转字符串
【LeetCode 18】6.2.反转字符串
19 0
|
2月前
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
89 0