首页 > 试题广场 >

字符串的相邻字符去重

[编程题]字符串的相邻字符去重
  • 热度指数:1858 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个仅由英文小写字母组成的字符串s,将相邻且相同的字符删掉构成新的字符串,重复删除操作直至生成不符合删除条件的字符串并返回。

示例1

输入

"bcaac"

输出

"b"

说明

bcaac执行删除操作后变为bcc,再次执行删除操作变为b,此时不再符合删除条件故返回b。
示例2

输入

"ab"

输出

"ab"

说明

原串即不符合删除条件,故直接返回。
头像 姐姐的遮阳伞
发表于 2022-04-07 22:51:17
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @re 展开全文
头像 unique琪殿
发表于 2023-07-03 18:53:34
解题步骤:(1)创建字符型数组arr,存放字符串s的各个元素。(2)进行for循环: ①index == -1:表明当前数组arr中无任何元素,则直接将s.charAt(i)的值存入arr数组; ②arr[index] == s.charAt(i):表明前后两个元素相同,则将index- 展开全文
头像 牛客82035003号
发表于 2022-04-15 19:11:18
用两个指针来比较元素,分别从下标为0和1开始。 1.若是两个元素一样,则左指针左移一位,右指针右移一位,继续比较,相当于用消消乐消去了这两个一样的元素。 2.若两个元素不一样,保留前者,检验后者,那么就要把两个指针都要往右移一位,继续比较下一组相邻的元素, 3.le 展开全文
头像 君无颜
发表于 2022-03-20 10:39:39
两种实现方法 方法一: 根据下标判断,当前下标字符和下一个字符是否相等 如果相等,则删除这两个字符,下标归零 如果不等,下标+1 c++实现 class Solution { public: string removeDuplicates(string s) { / 展开全文
头像 太阳hxy
发表于 2023-08-25 11:33:27
链接 public: string removeDuplicates(string s) { //创建一个栈 stack<char> stack1; //遍历字符串 for(int i=0;i<s.size() 展开全文
头像 O_胡萝卜_O
发表于 2022-09-15 12:07:59
class Solution:     def removeDuplicates(self , s: str) -> str:     &nbs 展开全文
头像 牛客416951627号
发表于 2024-12-20 10:01:28
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ function removeDuplicates(s) { // write code here 展开全文
头像 简单就好201710200501870
发表于 2024-11-04 08:00:53
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 * 展开全文