首页 > 试题广场 >

字符串的相邻字符去重

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

示例1

输入

"bcaac"

输出

"b"

说明

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

输入

"ab"

输出

"ab"

说明

原串即不符合删除条件,故直接返回。   
示例3

输入

"bcaaac"

输出

"bcac"

说明

bcaaac执行删除操作后变为 bcac ,此时不再符合删除条件 
package main
import "strings"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return string字符串
*/
func removeDuplicates( s string ) string {
    stk:=[]string{}
    for _,ch:=range s{
        if len(stk)>0&&stk[len(stk)-1]==string(ch){
            stk=stk[:len(stk)-1]
        }else{
            stk=append(stk,string(ch))
        }
    }
    return strings.Join(stk,"")
}

发表于 2023-03-09 11:57:22 回复(0)

问题信息

难度:
1条回答 1807浏览

热门推荐

通过挑战的用户

查看代码