【Leetcode】【2024048】1544. Make The String Great

做不受欢迎人士的时间比较久,看到有私信下意识以为要挨骂,乐
BGM:思念一个荒废的名字(陈楚生《瘾》)

Descripition

Given a string s of lower and upper case English letters.

A good string is a string which doesn’t have two adjacent characters s[i] and s[i + 1] where:

0 <= i <= s.length - 2

s[i] is a lower-case letter and s[i + 1] is the same letter but in upper-case or vice-versa.

To make the string good, you can choose two adjacent characters that make the string bad and remove them. You can keep doing this until the string becomes good.

Return the string after making it good. The answer is guaranteed to be unique under the given constraints.

Notice that an empty string is also good.

Example

Example 1:Input: s = "leEeetcode"
Output: "leetcode"
Explanation: In the first step, either you choose i = 1 or i = 2, both will result "leEeetcode" to be reduced to "leetcode".
Example 2:Input: s = "abBAcC"
Output: ""
Explanation: We have many possible scenarios, and all lead to the same answer. For example:
"abBAcC" --> "aAcC" --> "cC" --> ""
"abBAcC" --> "abBA" --> "aA" --> ""
Example 3:Input: s = "s"
Output: "s"

Constraints

Constraints:

1 <= s.length <= 100

s contains only lower and upper case English letters.

Solution

Problem:

1.Be careful about making sure that the stack is NOT empty

2.When use for-loop to visit the elements in a empty string s, be careful about the length of s is zero. This time please use s.push_back(element) instead of for-loop in s.length()

Code

class Solution {
public:string makeGood(string s){stack<char>ori;ori.push(s[0]);for(int i=1;i<s.length();++i){if(!ori.empty()){char mid=ori.top();if((mid>=65&&mid<=90)&&s[i]==mid+32) ori.pop();else if((mid>=97&&mid<=122)&&s[i]==mid-32) ori.pop();else ori.push(s[i]);}else ori.push(s[i]);}if(!ori.empty()){string c;int cnt=0;while(!ori.empty()){c.push_back(ori.top());ori.pop();}reverse(c.begin(),c.end());return c;}else return "";}
};

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

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

相关文章

【Unity优化】模型

初始模型影响性能点 1.最小化面数&#xff0c;不需要微三角形面&#xff08;一个三角面包含个位数像素&#xff09;&#xff0c;三角面尽量分布均匀 2.合理的拓扑结构与平滑组&#xff0c;尽可能是闭包 3.尽量少的材质个数 4.尽可能少的蒙皮网格 5.尽可能少的骨骼数量 6.FK与I…

【每日算法】理论:AIGC算法相关 刷题:力扣哈希表回顾

上期文章 【每日算法】理论&#xff1a; 扩散模型深度学习基础 刷题&#xff1a;力扣哈希表回顾 文章目录 上期文章一、上期问题二、本期问题1、Classifier-free Guidance和Classifier Guidance2、VAE为什么会导致图像变模糊3、SD&#xff0c;Dall-E2两者的异同4、NMS非极大值…

【汇编】_Visual Studio2019写32位汇编

目录 第一步&#xff1a;创建新项目 1. 空项目—下一步 2. 选择位置—填写项目名—创建 第二步&#xff1a;项目生成依赖项 1. 右击项目名—生成依赖项—生成自定义 2. 选中masm—确定 第三步&#xff1a;创建源文件 1. 源文件—添加—新建项 2. 选择C文件—创建新文件…

链表实现学生管理系统

这次我们运用链表的基础知识&#xff0c;增删改查&#xff0c;实现对学生系统进行管理&#xff0c;采用的多文件编程模式&#xff0c;接下来介绍一下什么叫做多文件编程。 程序一般分三类文件&#xff1a; 头文件( .h )。放置各种声明&#xff0c;用于被文件包含。&#xff0…

Android Studio中查看和修改project的编译jdk版本

android studio中查看和修改project的编译jdk版本操作如下&#xff1a; File->settings->Build,Execution,deployment->Build Tools->Gradles 进入Gradles页面可以查看并修改project的编译jdk版本&#xff0c;如图所示

安卓远离手机app

软件介绍 远离手机是专门为防止年轻人上瘾而打造的生活管理类的软件,适度用手机&#xff0c;保护眼睛&#xff0c;节约时间。 下载 安卓远离手机app

设计模式之解释器模式讲解

概念&#xff1a;是一种按照规定语法对表达式进行解析的方案。给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子。 抽象表达式&#xff1a;定义表达式需要实现的操作。终结符表达式&#xff1a;实…

Python学习从0到1 day21 第二阶段 面向对象 ④ 类型注解

仗剑红尘已是癫&#xff0c;有酒平步上青天 —— 24.4.7 一、变量的类型注解 学习目标 1.理解为什么使用类型注解 2.掌握变量的类型注解语法 为什么使用类型注解 tip&#xff1a;CTRLP&#xff0c;可以提示函数中传入的参数 当我们需要使用pycharm的自动补全功能&#xff0c;又…

java 创建线程的方式

在 Java 中&#xff0c;创建线程有以下几种方式&#xff1a; 继承 Thread 类&#xff1a;创建一个类并继承 Thread 类&#xff0c;重写 run() 方法来定义线程执行的任务。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("Threa…

Google视觉机器人超级汇总:从RT、RT-2到AutoRT/SARA-RT/RT-Trajectory、RT-H

前言 随着对视觉语言机器人研究的深入&#xff0c;发现Google的工作很值得深挖&#xff0c;比如RT-2 ​想到很多工作都是站在Google的肩上做产品和应用&#xff0c;​Google真是科技进步的核心推动力&#xff0c;做了大量大模型的基础设施&#xff0c;服(推荐重点关注下Googl…

Excel 多选实现

代码 Private Sub Worksheet_Change(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String If Target.Count > 1 Then GoTo exitHandlerOn Error Resume Next Set rngDV Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exi…

Cherno CPP学习笔记-01-背景知识

0、工具网站收集 C语言版本特性 https://en.cppreference.com https://www.cplusplus.com https://www.tutorialspoint.com/cplusplus https://www.learncpp.com https://github.com/fffaraz/awesomecpp https://stackoverflow.com 网页CPP编译器 [C] gcc 12.1.0 - Wa…

【华为OD机试C++】单词倒排

《最新华为OD机试题目带答案解析》:最新华为OD机试题目带答案解析,语言包括C、C++、Python、Java、JavaScript等。订阅专栏,获取专栏内所有文章阅读权限,持续同步更新! 文章目录 描述输入描述输出描述示例1示例2代码描述 对字符串中的所有单词进行倒排。 说明: 1、构成单…

Python人工智能应用--图像识别深度学习

1.像素 像素(缩写为px)是图像中的最小单位&#xff0c;由一个个小方格组成。 这些小方格都有一个固定的位置和颜色&#xff0c;共同决定了图像所呈现出来的样子。 2.分辨率 这些小方格的行数与列数又被叫做分辨率。我们常说的某幅图像的分辨率是1280720&#xff0c;指的就是…

设计模式之状态模式讲解

概念&#xff1a;又称为状态对象模式&#xff0c;该模式允许一个对象在其内部状态改变时改变其行为。状态模式的核心是封装&#xff0c;状态的变更引起行为的变动&#xff0c;从外部看来就好像该对象对应的类发生改变一样。 抽象状态&#xff1a;用以封装环境对象的一个特定状态…

Qt使用插件QPluginLoader 机制开发

简介&#xff1a; 插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。 Qt 提供了2种APIs来创建插件&#xff1a; 一种高级API&#xff0c;用于为Qt本身编写插件&#xff1a;自定义数据库驱动程序&#xff0c;图像格…

计算机网络-运输层

运输层 湖科大计算机网络 参考笔记&#xff0c;如有侵权联系删除 概述 运输层的任务&#xff1a;如何为运行在不同主机上的应用进程提供直接的通信服务 运输层协议又称端到端协议 运输层使应用进程看见的好像是在两个运输层实体之间有一条端到端的逻辑通信信道 运输层为应…

导出加入域控的电脑清单

要导出加入域控的所有电脑清单&#xff0c;包括计算机名等基本信息&#xff0c;可以使用 PowerShell 中的 Get-ADComputer cmdlet。下面是一个基础示例脚本&#xff0c;用于从Active Directory (AD)中批量导出所有加入域的计算机名称及可能的其他相关信息&#xff0c;并将其保存…

嘉轩智能工业科技诚邀您参观2024第13届生物发酵展

参展企业介绍 自2005年成立以来&#xff0c;嘉轩一直致力于工业智能永磁滚筒的研发、制造及销售&#xff0c;具有十多年的从业经验&#xff0c;公司主营产品包括工业智能永磁滚筒、机电智能诊断、工业智能电机等&#xff0c;高效智能自驱动永磁滚筒为我公司目前主导产品&#x…

thinkphp6使用阿里云SDK发送短信

使用composer安装sdk "alibabacloud/dysmsapi-20170525": "2.0.24"封装发送短信类 发送到的短信参数写在env文件里面的 #发送短信配置 [AliyunSms] AccessKeyId "" AccessKeySecret "" signName"" templateCode"&…