【无标题】2390:从字符串中移除*

这里(借用下某人的总结)我认识到,string类型的变量可以直接使用string库里面现成的接口,比如push_back(),pop_back(),其实与vector里面的接口是差不多的,所以以后可以直接用。

反思:不可用res.empty()!= NULL来判断res这个栈是否为空,因为null是指针类型的,而res这个栈定义的是char类型的。

老师的解法。

复制代码
class Solution {
public:
    string removeStars(string s) {
        string c="";
       for(int i=0;i<s.size();i++){
        if(s[i]=='*'){
            c.pop_back();
        }
        else{
            c.push_back(s[i]);
        }
       }
       return c;
    }
};

我的解法用栈

复制代码
class Solution {
public:
    string removeStars(string s) {
        string c="";
        stack<char> res;
      for(int i=0;i<s.size();i++){
        
        if(s[i]=='*'){
            if(!res.empty()&&res.top()!='*'){
                res.pop();
            }
        }
        else{
        res.push(s[i]);
        }
      }
        while(!res.empty()){
            c+=res.top();
            res.pop();
        }
        reverse(c.begin(),c.end());
      return c;
    }
};

我优化后的解法

复制代码
class Solution {
public:
    string removeStars(string s) {
        string c="";
        vector<char> res;
      for(int i=0;i<s.size();i++){
        if(s[i]=='*'){
            res.pop_back();
            }
        else{
        res.push_back(s[i]);
        }
      }
       for(int i=0;i<res.size();i++){
        c+=res[i];
       }
      return c;
    }
};
相关推荐
Smilecoc2 分钟前
决策树(二):决策树的划分选择
算法·决策树·机器学习
布朗克1686 分钟前
33 设计模式精讲
java·单例模式·设计模式
砍材农夫10 分钟前
python 如何一次性安装项目所有依赖包(pip和uv)
开发语言·python·pip·uv
IpdataCloud11 分钟前
信贷审核中如何验证用户地址与IP属地一致性?用IP查询工具实现反欺诈
开发语言·tcp/ip·金融·php·ip
hetao173383713 分钟前
2026-05-25~06-11 hetao1733837 的刷题记录
c++·算法
cheems952716 分钟前
[算法手记] 滑动窗口最大值
算法
洛水水18 分钟前
【力扣100题】82.有效的括号
c++·算法·leetcode
XGeFei20 分钟前
时序算法 —— LSTM、ARIMA、随机森林
算法·随机森林·lstm
码语智行20 分钟前
基于word模板导出人员信息
java
云水-禅心21 分钟前
解决MacOS 安装Python之后默认版本指向不正确问题
开发语言·python·macos