How to remove all adjacent duplicate characters from a string until no more can be removed in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func removeAdjacentDuplicates(s string) string {
    stack := make([]rune, 0, len(s))

    for _, ch := range s {
        n := len(stack)
        if n > 0 && stack[n-1] == ch {
            stack = stack[:n-1] // pop
        } else {
            stack = append(stack, ch) // push
        }
    }

    return string(stack)
}

func main() {
    s := "abbacccada"
    fmt.Println(removeAdjacentDuplicates(s)) 
}



/*
run:

cada

*/

 



answered Mar 7 by avibootz

Related questions

...