2390.从字符串中移除星号

简介: 2390.从字符串中移除星号

题目:给你一个包含若干星号 * 的字符串 s 。

在一步操作中,你可以:

  • 选中 s 中的一个星号。
  • 移除星号 左侧 最近的那个 非星号 字符,并移除该星号自身。

返回移除 所有 星号之后的字符串。

注意:

  • 生成的输入保证总是可以执行题面中描述的操作。
  • 可以证明结果字符串是唯一的。

解题思路:从遍历的顺序来看,最后遍历到了先删除,用栈来方便解决。

遍历字符,遇到*就弹出栈顶,否则就入栈。

最后把栈里的字符以逆序组成字符串即是答案。

class Solution{
    public String removeStars(String s){
        Stack<Character>stack=new Stack<>();
        for(char ch:s.toCharArray()){
            if(ch=='*'){
                stack.pop();            
            }else{
                stack.push(ch);            
            }        
        }    
        StringBuilder sb=new StringBuilder();
        while(!stack.isEmpty()){
            sb.insert(0,stack.pop());        
        }
        return sb.toString();
    }
}


相关文章
|
4月前
|
算法 前端开发
从字符串中移除星号
从字符串中移除星号
44 0
|
4月前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
12月前
|
C语言 C++
从字符串中删除指定字符
从字符串中删除指定字符
113 2
|
数据安全/隐私保护 索引
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
216 0
第一个只出现一次的字符
第一个只出现一次的字符
43 0
删除字符串中字符最少的字符并返回
删除字符串中字符最少的字符并返回
用#替换字符
给定一个由大小写字母构成的字符串。 把该字符串中特定的字符全部用字符 # 替换。
112 0
|
Python
一日一技:如何移除所有不可见字符?
一日一技:如何移除所有不可见字符?
442 0
一日一技:如何移除所有不可见字符?
C#编程-17:字符串取第一个和最后一个字符
C#编程-17:字符串取第一个和最后一个字符
309 0