首页 > 试题广场 >

字符串连连看

[编程题]字符串连连看
  • 热度指数:1442 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
对于输入的字符串,从左到右扫描字符串,如果存在由三个以上(包括三个)连续相同字符组成的子串,就将这个子串从原串中去掉,并将原有字符串剩下的部分拼接到一起。重复上述过程,直到无法去掉任何子串

输入描述:
输入的字符串


输出描述:
最后剩下的子串
示例1

输入

AAABCCDDDCB

输出

BB
package main

import (
    "fmt"
)

func main() {
    var s string
    fmt.Scan(&s)
    ans:=""
    for _,ch:=range []byte(s){
        if len(ans)>1&&ans[len(ans)-1]==ans[len(ans)-2]&&ans[len(ans)-1]==ch{
            ans=ans[:len(ans)-2]
        }else{
            ans+=string(ch)
        }
    }
    fmt.Print(ans)
}

发表于 2023-03-22 01:26:52 回复(0)