【简单】1047. 删除字符串中的所有相邻重复项

力扣1047. 删除字符串中的所有相邻重复项-C语言实现-简单题 题目 传送门 文本 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:“abbaca” 输出:“ca” 解释: 例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。 阅读详情

【题目】
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
来源:leetcode
链接:https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/
【示例】
输入:“abbaca”
输出:“ca”
解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。
【代码】string+substr()效率低

class Solution {
public:
    string removeDuplicates(string S) {
        string rs=S;
        if(rs.size()==1)
            return S;
        for(int i=1;i<rs.size();){
            if(rs[i]==rs[i-1]){
                rs=rs.substr(0,i-1)+rs.substr(i+1);
                i=1;
            }else
                i++;
        }
        return rs;
    }
};

【string模拟栈】
执行用时 :44 ms, 在所有 C++ 提交中击败了45.44% 的用户
内存消耗 :10.4 MB, 在所有 C++ 提交中击败了100.00%的用户

class Solution {
public:
    string removeDuplicates(string S) {
        string re="";
        for(auto x:S)
            if(re.size()==0||re.back()!=x)
                re+=x;
            else
                re.pop_back();
        return re;
    }
};

【stack辅助】
执行用时 :52 ms, 在所有 C++ 提交中击败了36.66% 的用户
内存消耗 :10.8 MB, 在所有 C++ 提交中击败了100.00%的用户

class Solution {
public:
    string removeDuplicates(string S) {
        string rs="";
        stack<char> s;
        for(auto x:S)
            if(s.empty()||s.top()!=x)
                s.push(x);
            else
                s.pop();
        while(!s.empty()){
            rs+=s.top();
            s.pop();
        }
        reverse(rs.begin(),rs.end());
        return rs;
    }
};
Blender软件导出地形到Gazebo中 Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。 阅读详情

相关推荐

Simulink单相桥式有源逆变电路仿真:从器件选型到波形分析(MATLAB 2018a实战)

本文基于MATLAB 2018a的Simulink平台,详细演示了单相桥式有源逆变电路的完整仿真流程。从Simscape/Power Systems库的器件选型、参数配置,到触发脉冲设置与电路连接,逐步指导搭建仿真模型。通过调整触发角α,直观展示了电路从整流到有源逆变的工作状态切换,并深入分析了负载电压、电流波形,以及逆变颠覆现象的产生条件与特征。

cake8的博客 1164

lua中table操作,表内进行排序(升序降序)去除表内相同(重复)元素

该方法,只适合一些简单的表,key只包含数字或者只包含字符串的简单数组,但是思路都是差不多的。主要方法:table.sort(_table) table.sort(_table,function(a,b) return a.id<b.id end) –“升序 <” “降序 >”,a和b是代表table里面的值,比如_table = {[1] = {[“id”] = 1,[“na...

笔记的博客 6005

【UE4】PMC程序化生成戈德堡多面体详解(六边形星球)

游戏实机录屏 【魔方超新星】30天独立开发PCG Minigame《盖亚计划》作品展示,尚有不足,大佬轻喷 目录 游戏实机录屏 一、简介 二、设计思路 2.1 Disco Ball 2.2 Fibonacci Sphere 2.3 Goldberg Polyhedron 2.3.1 细分+对偶(最终方案) 2.3.2 对偶+截角(更优) 三、参考文献 一、简介 在制作Minigame初期,游戏风格想模仿《文明6》与《Polygonal Planet Proje...

ColorGalaxy 5933

lua读取文本并去掉重复行

需求 有一个文本文件,里面有大量的重复行,要求把重复的部分去掉.我本想用我的老本行java来实现的.感觉挺简单的,拿lua练一下手吧! 源文本如下: column XH format a9 column XM format a9 column XB format a4 column XH format a9 column XM format a9 只要是前半部分是一样的(如:column XH format ),就认为是重复的,保留一行就行. 结果应该是: column XM format a9 colu

lxyoucan的博客 755

有限元分析必看:如何用ANSYS检查关键区域的网格质量(附操作截图)

本文聚焦有限元分析中决定仿真精度的关键环节,详细讲解了如何利用ANSYS Workbench对关键区域进行网格质量检查与优化。文章提供了从思维转变、实战操作到指标解读的完整流程,强调通过命名选择、Worksheet过滤器等工具实现定向检查,并给出了针对结构分析的关键区域网格质量阈值建议,帮助工程师提升仿真结果的可靠性与效率。

weixin_29200741的博客 470

轨迹规划——带抛物线过渡的直线插补

带抛物线过渡的直线插补

doudou2weiwei的博客 1986

Lua实战之table去重

在开发过程中,有时候会遇到需要对table中的元素进行去重的情况,就是说如果table中有多个相同的元素,只保留一个!直接上代码: local targetTbl = {1, 1, 2, 3, 3, 3, 4, 5, 5} -- 需要去重的目标table dump(targetTbl, "targetTbl") --[[ - "targetTbl" = { - 1 = 1 - ...

fightsyj的博客 8008

AI视频生成成本优化实战:混合架构与硬件选型

AI视频生成技术正面临效果与成本的二元博弈,其核心挑战在于高昂的推理算力消耗与黑箱服务的不确定性。从技术原理看,视频生成依赖扩散模型等深度学习架构,通过多轮迭代实现像素级合成,这导致GPU显存占用和电力消耗呈指数级增长。在工程实践中,采用混合推理架构能有效平衡成本与质量,例如云端处理关键帧配合本地渲染过渡帧,实测可降低58%支出。硬件选型方面,消费级显卡魔改与边缘计算设备为中小企业提供了可行方案,如RTX 3090显存扩容或Jetson AGX边缘部署。当前AI视频应用已渗透电商直播、新闻制作等领域,但需警

weixin_29531177的博客 296

删除字符串中的所有相邻重复项(C++)

题目:给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 leetcode链接 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:“abbaca” 输出:“ca” 解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。

weixin_42817333的博客 1752

Cesium中级开发教程之五十二:气泡弹窗

支持多种交互方式触发气泡弹窗显示,如鼠标悬停、点击地图上的特定元素(像实体、标注、模型等)。例如,当用户鼠标悬停在一个表示城市的点上时,弹出显示该城市名称、人口等信息的气泡。:依据特定的数据条件或业务逻辑触发。比如,当某个区域的气象数据达到一定阈值时,自动弹出显示相关气象预警信息的气泡。

665

手把手教你学Simulink——基础电机控制场景实例:基于Simulink的永磁同步发电机温度场耦合仿真

摘要:本文详细介绍了基于Simulink的永磁同步发电机(PMSG)电-热耦合仿真方法。通过Simscape Electrical搭建含热端口的PMSG模型,结合集总参数热网络(LPTN)实现损耗计算与温度反馈,分析了过载工况下温升对电阻和永磁体性能的影响。仿真结果表明:150%过载20秒会导致绕组温升132°C,电阻增加42%,磁链衰减10.5%。文章还提供了自然冷却与强迫风冷的对比数据,并建议通过多物理场耦合仿真预防实机过热问题。该方法可有效支撑高功率密度电机热设计,避免永磁体退磁风险。

MHD0815的博客 252

C++力扣题目1047--删除字符串中的所有相邻重复项

例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。我们在删除相邻重复项的时候,其实就是要知道当前遍历的这个元素,我们在前一位是不是遍历过一样数值的元素,那么如何记录前面遍历过的元素呢?所以就是用栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。从栈中弹出剩余元素,此时是字符串ac,因为从栈里弹出的元素是倒序的,所以再对字符串进行反转一下,就得到了最终的结果。

weixin_47675625的博客 793

仿真学习系列(十五):ADS仿真理解电感的反射特性

在高速电路设计中,电感的反射特性是影响信号质量的重要因素。电感的瞬时阻抗和反射波形直接影响信号的传输效果,尤其在高频应用中更为显著。本篇文章将通过ADS仿真来深入理解电感的反射特性,并探索如何通过调整仿真参数来分析和优化电路设计。

案例文章,高速信号 502

【1047. 删除字符串中的所有相邻重复项 简单】

直接将字符串作为栈,省去栈转为字符串的操作。

yuan_2001_的博客 325

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Leetcode—1047. 删除字符串中的所有相邻重复项【简单】

本文介绍了Leetcode 1047题"删除字符串中的所有相邻重复项"的两种解法。第一种方法使用栈结构,遍历字符串时遇到相邻重复字符则出栈,否则入栈,最后反转结果字符串。第二种方法直接利用字符串本身作为栈,通过back()和pop_back()操作实现去重。两种方法均能有效解决问题,其中字符串方法更为简洁高效。文章附有运行结果截图和完整代码实现,展示了不同解法的时间复杂度对比。

Atticus的博客 331

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

leetcode 算法题1047 (简单278) 删除字符串中的所有相邻重复项

leetcode 算法题1047 (简单278) 删除字符串中的所有相邻重复项 题目介绍 给出由小写字母组成的字符串 S, 重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例 输入:“abbaca” 输出:“ca” 解释:例如,在 “abbaca” 中,...

FYuu95100的博客 592

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Python】【难度:简单】Leetcode 1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca" 输出:"ca" 解释: 例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。 提示:...

thomashhs12的博客 335

LeetCode 【栈】 1047. 删除字符串中的所有相邻重复项 (简单)

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:“abbaca” 输出:“ca” 解释: 例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。 提示: 1 <= S

Mr. Stone's Blog 1003

【栈】【leetcode】【简单】1047. 删除字符串中的所有相邻重复项

题目: 给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 例: 输入:"abbaca" 输出:"ca" 解释: 例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。 原题地址.

xiaoshe的专栏 229

leetcode_1047. 删除字符串中的所有相邻重复项(简单)

题目 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 思路: // 思路:一定要画过程才不容易出错 // 注意这里是和消消乐一样的删除,删除重复元素,如果有新的重复元素落到了一起。继续删除。 // for循环遍历数...

baihehaitangyijiu的博客 493

【LeetCode】1047. 删除字符串中的所有相邻重复项(StringBuffer简单用法)

给出由小写字母组成的字符串S重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

Leonardo_t的博客 625

栈(一)1047. 删除字符串中的所有相邻重复项 简单

例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。用一个栈来接收串中元素,每访问一个元素就和栈顶元素进行对比,相同就出栈,不同就压栈。在完成所有重复项删除操作后返回最终的字符串。发现可以直接使用res来当做一个栈来进行接收元素。上反复执行重复项删除操作,直到无法继续删除。会选择两个相邻且相同的字母,并删除它们。

曾几何时的博客 216

leetcode【栈与队列—简单】 1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca" 输出:"ca" 解释: 例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。 提示: 1 <=

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 451

1047. 删除字符串中的所有相邻重复项(简单)

例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。输入:“abbaca”

Rock在学习的博客 417

【栈-简单】1047. 删除字符串中的所有相邻重复项

【题目】 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 【示例】 输入:“abbaca” 输出:“ca” 解释: 例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。 【提示】 1

... 138

0栈简单 LeetCode1047. 删除字符串中的所有相邻重复项

1047. 删除字符串中的所有相邻重复项 描述 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 分析 使用栈方便删除重复的字符。 遍历字符串,将字符一个个加入栈,若重复弹出栈,最后栈中的字符便是最终结果的倒序。 class Solution { public String removeDuplicates(String s) { S

31楼下小黑的博客 114
上一篇: 【简单】1002. 查找常用字符
下一篇: 【简单】908. 最小差值 I
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值