当前位置: 首页 > Web前端 > JavaScript

Leetcode1209去除字符串中所有相邻的重复项II

时间:2023-03-26 21:16:24 JavaScript

给你一个字符串s,“k-fold去重操作”会从s中选择k个相邻且相等的字母并将其删除,将删除字符串的左右两边拼接起来.你需要对s重复这个删除操作无数次,直到你无法继续。执行所有删除后,返回结果字符串。这个问题的答案保证是唯一的。示例1:输入:s="abcd",k=2输出:"abcd"解释:没有要删除的内容。示例2:输入:s="deeedbbcccbdaa",k=3输出:"aa"解释:先删除"eee"和"ccc"得到"ddbbbdaa"然后删除"bbb"得到"dddaa"最后删除"ddd",get"aa"例3:输入:s="pbbcggttciiippooaais",k=2输出:"ps"解题思路使用栈,当栈为空或栈顶元素与当前遍历元素,直接入栈,如果栈顶元素与当前元素相同,则采用更巧妙的方法,将栈顶元素与当前元素拼接起来,然后入栈,这样重复的元素就可以记录下来,不需要额外查找,然后如果重复的元素长度达到k-1时,pop之后就不会入栈了,以此类推。constremoveDuplicates=(s,k)=>{让堆栈=[];for(leti=0;i