LeetCode2390从字符串中移除星号

news2025/1/22 13:08:09

题目描述

  给你一个包含若干星号 * 的字符串 s 。在一步操作中,你可以:选中 s 中的一个星号。移除星号 左侧 最近的那个 非星号 字符,并移除该星号自身。返回移除 所有 星号之后的字符串。注意:生成的输入保证总是可以执行题面中描述的操作。可以证明结果字符串是唯一的。

解析

  虽然这题是栈的类别,但实际上不需要使用栈,而且不是很难。由于确定前面一定有可以删除的,所以可以直接从后往前遍历,会更快一点。

public String removeStars(String s) {
        StringBuilder res = new StringBuilder();
        int starCount = 0;
        for (int i = s.length() - 1; i >= 0; i--) {
            char c = s.charAt(i);
            if (c == '*') {
                starCount++;
            } else if (starCount > 0) {
                starCount--;
            } else {
                res.append(c);
            }
        }
        return res.reverse().toString();
    }

在这里插入图片描述
把栈的解法也贴出来:

public String removeStars(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '*') {
                if (!stack.isEmpty()) {
                    stack.pop();
                }
            } else {
                stack.push(c);
            }
        }

        StringBuilder stringBuilder = new StringBuilder();
        while (!stack.isEmpty()) {
            stringBuilder.append(stack.pop());
        }
        stringBuilder.reverse();

        return stringBuilder.toString();
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1673691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA 项目<果园之窗>_完结

目录 1、前言&#xff1a;2、视频展示&#xff1a;3、环境配置&#xff1a;4、工程代码&#xff1a;5、原理&#xff1a;6、原理补充&#xff1a;7、综上&#xff1a; 1、前言&#xff1a; 因为没有足够的时间这个项目用的是别人搭好的框架&#xff0c;在此基础上做调整并根据前…

算法训练营第二十八天 | LeetCode 77 组合(剪枝优化)、LeetCode 216 组合总和III、LeetCode 17 电话号码的字母组合

LeetCode 77 组合&#xff08;剪枝优化&#xff09; 当我们到达某一层&#xff0c;后面的结点数已经不能满足条件时。可以进行剪枝操作。 代码如下&#xff1a; class Solution { private:vector<int> path;vector<vector<int>> res;void backtracking(in…

前端无样式id或者class等来定位标签

目录&#xff1a; 1、使用背景2、代码处理 1、使用背景 客户使用我们产品组件&#xff0c;发现替换文件&#xff0c;每次替换都会新增如下的样式&#xff0c;造就样式错乱&#xff0c;是组件的文件&#xff0c;目前临时处理的话就是替换文件时删除新增的样式&#xff0c;但是发…

机器学习中常用的几种距离——欧式、余弦等

目录 一、欧式距离&#xff08;L2距离&#xff09;二、曼哈顿距离&#xff08;L1距离&#xff09;三、汉明距离四、余弦相似度 一、欧式距离&#xff08;L2距离&#xff09; &#xff08;1&#xff09;二维空间的距离公式&#xff08;三维空间的在这个基础上类推&#xff09;&…

Spring AI项目Open AI对话接口开发指导

文章目录 创建Spring AI项目配置项目pom、application文件controller接口开发接口测试 创建Spring AI项目 打开IDEA创建一个新的spring boot项目&#xff0c;填写项目名称和位置&#xff0c;类型选择maven&#xff0c;组、工件、软件包名称可以自定义&#xff0c;JDK选择17即可…

IDC:2023年中国IT安全软件市场同比增长4.7%

IDC最新发布的《中国IT安全软件市场跟踪报告&#xff0c;2023H2》显示&#xff0c;2023年下半年中国IT安全软件市场厂商整体收入约为169.8亿人民币&#xff08;约合23.5亿元美元&#xff09;&#xff0c;同比上升2.7%。结合全年数据&#xff0c;2023全年中国IT安全软件市场规模…

学习Uni-app开发小程序Day11

今天是学习的第11天&#xff0c;今天学习了组件的生命周期&#xff0c;这里的生命周期&#xff0c;主要是学习uni-app的组件生命周期&#xff0c;虽然vue也有&#xff0c;但主要还是学习uni-app的。1. onLoad 监听页面加载&#xff0c;该钩子被调用时&#xff0c;响应式数据、计…

Python新手注意:避免常见错误,学会‘/’和‘\’的正确使用

Python 编程语言中的正反斜杠符号&#xff08;‘/’和‘\’&#xff09;是非常基础但又极其重要的元素&#xff0c;它们在不同的场合下扮演着不同的角色。了解这两个符号的意义和用法&#xff0c;对于编写清晰、有效的代码至关重要。 基础概念 正斜杠&#xff08;‘/’&#…

Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!

前言 我们之前肯定已经见过了很多文本生成图片、文本生成声音以及AI翻唱歌曲 等多种AI产品&#xff08;模型&#xff09;。 其实音乐和图片从某种意义上来说都是艺术创作的一种形式&#xff0c;它们可以相互配合&#xff0c;共同呈现出一种更加丰富、感性的表达方式。 将图片…

vue+vant项目0-1快速发布到--钉钉应用

uniapp开发笔记----vue开发项目配置钉钉应用 一、 vuevant开发项目1. 自定义vuevant项目或者已经有的旧项目1. 自定义vuevant项目1. 创建vue项目2. 安装依赖3. 引入所有组件4. 使用一个组件/效果和代码如下&#xff1a; 2. git官网仓库&#xff0c;直接拉默认dome代码3. 打包项…

优思学院:精益六西格玛如何影响企业文化?

精益六西格玛&#xff08;Lean Six Sigma&#xff09;是一种在优化生产过程、提高效率、减少浪费的管理方法论。其影响远不止于生产线或质量控制部门&#xff0c;实际上&#xff0c;精益六西格玛的实施可以深刻影响企业文化的各个层面&#xff0c;從而令企業獲得真正最大的成功…

游戏中的设计模式一

游戏开发是一个快速迭代的过程&#xff0c;代码复杂度也很高&#xff0c;借助于设计模式&#xff0c;可以帮助我们降低复杂度&#xff0c;降低系统间的耦合&#xff0c;从而高效高质的做出交付。 最近读了这本书&#xff1a;《游戏编程模式》[1]&#xff0c;很受启发&#xff…

AC/DC电源模块的可靠性设计与测试方法

BOSHIDA AC/DC电源模块的可靠性设计与测试方法 AC/DC电源模块是一种将交流电能转换为直流电能的设备&#xff0c;广泛应用于各种电子设备中&#xff0c;如电脑、手机充电器、显示器等。由于其关系到设备的供电稳定性和安全性&#xff0c;因此可靠性设计和测试是非常重要的。下…

AI绘画Stable Diffusion换脸插件ReActor 不香了,新一代换脸神器 InstantID!

前 言 之前我介绍了 SD 中的一款换脸插件 ReActor&#xff0c;虽然好使&#xff0c;但是安装还是有些许麻烦的。 今天给小伙伴们介绍一款新型的换脸插件&#xff1a;InstantID&#xff0c;主要是使用 ControlNet 和 IP-Adapter 的组合来控制扩散过程中的面部特征。 一句话&a…

「JavaEE」多线程案例分析2:实现定时器

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;JavaEE &#x1f387;欢迎点赞收藏加关注哦&#xff01; 实现定时器 &#x1f349;简介&#x1f349;模拟实现定时器 &#x1f349;简介 定时器类似一个闹钟&#xff0c;时间到了之后就会执行…

【全开源】JAVA国际版多语言语聊大厅语音聊天APP系统源码

JAVA国际版多语言语聊大厅语音聊天APP系统源码——深度解析市场需求&#xff0c;打造全球化语音社交平台 随着全球化的推进和移动互联网的普及&#xff0c;人们对于语音聊天的需求日益增长。尤其是在国际交流日益频繁的今天&#xff0c;一个支持多语言、覆盖全球用户的语音聊天…

分布式搜索-elaticsearch基础 概念

什么是elaticsearch: 倒排索引&#xff1a;就是将要查询的内容分成一个个词条&#xff0c;在将词条文档id存入&#xff0c;词条是唯一的。 文档词条总结: mysql和Elasticsearch概念对比: 架构: 基本概念总结:

互联网盲盒小程序开发,提高商家在市场中的竞争力

随着人们生活水平的提高&#xff0c;对娱乐消费需要也在慢慢增加&#xff0c;潮玩市场也因此得到了快速发展&#xff0c;尤其是盲盒&#xff0c;深受大众的喜爱&#xff0c;现在在各大商场以及各种社交平台上都能看到盲盒的身影&#xff0c;市场影响力非常大&#xff01; 在当…

FastAPI:Python打造高效API的终极武器

在Python的世界里&#xff0c;如果你想要一个既快速又现代的方式来构建API&#xff0c;那么FastAPI可能是你的首选。这个库基于Starlette&#xff08;用于Web编程&#xff09;和Pydantic&#xff08;用于数据验证&#xff09;&#xff0c;专门为速度和易用性设计。 什么是FastA…

搞懂Docker(九)- 使用Docker Compose

获取示例程序 示例程序 或者 示例程序 获取示例程序程序结构如下├── getting-started-app/ │ ├── package.json │ ├── README.md │ ├── spec/ │ ├── src/ │ └── yarn.lock使用Docker Compose Docker Compose是一个帮助你定义和共享多容器应用程序的工具…