leetcode 2810.故障键盘

思路:模拟

其中题解中有用双端队列做的,大家可以参考一下,这里我就展示一下暴力怎么用。

这里就不多说了,直接看模拟过程就行了,代码中会有注释。

注意:这里在反转的时候,作者用到了一个容器就是list容器,之所以用,是因为里面含有一个函数叫做reverse,就是反转的意思,在这里很方便。

复制代码
class Solution {
public:
    string finalString(string s) {
        list<char>L;
        int n=s.size();
        string buf;
        int index1=0;
        int index2=0;
        for(int i=0;i<n;i++){
            if(s[i]=='i'){
                index2=i;
                if(index1+1==index2&&index1!=0)
                L.reverse();
                else{
                for(int j=index1;j<index2;j++){
                    if(s[j]!='i')
                    L.push_back(s[j]);
                }
                L.reverse();
                }
                
                index1=index2;
            }
        }
        for(auto it:L)
        buf+=it;
        if(index2!=0)
        buf+=s.substr(index2+1);
        else
        buf+=s.substr(index2);
        return buf;
    }
};
相关推荐
1白天的黑夜13 分钟前
链表-24.两两交换链表中的结点-力扣(LeetCode)
数据结构·leetcode·链表
智践行7 分钟前
C++11 智能指针:`std::unique_ptr`、`std::shared_ptr`和`std::weak_ptr`
c++
智践行16 分钟前
C++11之后的 Lambda 表达式 以及 `std::function`和`std::bind`
c++
智践行20 分钟前
C++11移动语义‘偷梁换柱’实战
c++
二向箔reverse24 分钟前
机器学习算法核心总结
人工智能·算法·机器学习
祁同伟.1 小时前
【C++】模版(初阶)
c++
猿究院--冯磊1 小时前
JVM垃圾收集器
java·jvm·算法
sTone873752 小时前
android studio之外使用NDK编译生成android指定架构的动态库
android·c++
野犬寒鸦2 小时前
力扣hot100:最大子数组和的两种高效方法:前缀和与Kadane算法(53)
java·后端·算法
我家大宝最可爱2 小时前
动态规划:入门思考篇
算法·动态规划·代理模式