MSIPO技术圈 首页 IT技术 查看内容

2390.从字符串中移除星号

2024-03-21

题目:给你一个包含若干星号 * 的字符串 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();
    }
}

相关阅读

热门文章

    手机版|MSIPO技术圈 皖ICP备19022944号-2

    Copyright © 2024, msipo.com

    返回顶部