【无标题】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;
    }
};
相关推荐
IT枫斗者枫哥41 分钟前
MyBatis一对多分页:LIMIT 20,为什么凑不齐20个订单?
java·数据库
代码方舟41 分钟前
Java数据工程:利用天远全网运营商三要素优化线上实名认证合规体验
java·人工智能
BBmmo42 分钟前
我的 Java 学习笔记 · 第 7 篇:泛型与通配符
java
独泪了无痕42 分钟前
Hutool之RandomUtil:随机数生成的终极利器
java·后端
用户9799848071842 分钟前
200 行代码写一个能跑的 AI Agent:不依赖任何框架,只靠 tool-calling 原理
算法
花开路口42 分钟前
深入理解 Java/Kotlin 协变与逆变
java·kotlin
运行时异常43 分钟前
【WMS 仓储系统集成 AI Agent 实战】第 7 讲:Vue3 前端工程化——Token 刷新锁、Markdown 渲染踩坑与权限体系
java
threerocks43 分钟前
【Muse实战】X 流量作战室搭建保姆级教程 - 拥有你自己的运营团队
算法
她的男孩44 分钟前
开放接口限流从 20 改到 200 还是每分钟 20 次:拆完防重放+幂等+限流,我找到 5 个静默失效的坑
java·后端·架构
天天被压力1 小时前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·人工智能·python