【力扣·每日一题】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月前
|
索引
力扣随机一题 6/26 哈希表 数组 思维
力扣随机一题 6/26 哈希表 数组 思维
30 0
|
1月前
|
存储 算法
LeetCode第43题字符串相乘
LeetCode第43题"字符串相乘"的解题方法,通过使用数组存储乘积并处理进位,避免了字符串转换数字的复杂性,提高了算法效率。
LeetCode第43题字符串相乘
|
1月前
|
算法 Java
LeetCode第28题找出字符串中第一个匹配项的下标
这篇文章介绍了LeetCode第28题"找出字符串中第一个匹配项的下标"的两种解法:暴力解法和KMP算法,并解释了KMP算法通过构建前缀表来提高字符串搜索的效率。
LeetCode第28题找出字符串中第一个匹配项的下标
|
1月前
|
算法
LeetCode第8题字符串转换整数 (atoi)
该文章介绍了 LeetCode 第 8 题字符串转换整数 (atoi)的解法,需要对字符串进行格式解析与校验,去除前导空格和处理正负号,通过从高位到低位的计算方式将字符串转换为整数,并处理越界情况。同时总结了这几道题都需要对数字的表示有理解。
LeetCode第8题字符串转换整数 (atoi)
|
16天前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
2月前
|
算法 C++
2730. 找到最长的半重复子字符串(c++,滑动窗口)
2730. 找到最长的半重复子字符串(c++,滑动窗口)
|
2月前
|
C++
567. 字符串的排列(c++)滑动窗口
567. 字符串的排列(c++)滑动窗口
|
2月前
|
编译器 C++
【C++】string类的使用④(字符串操作String operations )
这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以&#39;\0&#39;结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加&#39;\0&#39;。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。
|
3月前
|
算法
力扣每日一题 6/23 字符串/模拟
力扣每日一题 6/23 字符串/模拟
27 1
|
3月前
力扣经典150题第四十题:同构字符串
力扣经典150题第四十题:同构字符串
24 1