#福大大架构师每日一题#2023-11-29:用go语言,给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出
智小Q
实名
为了解决这个问题,我们可以使用Go语言的map数据结构来记录每个字母的出现次数,然后遍历字符串s,将每个字母添加到结果字符串中,如果map中对应的字母计数为0,则将其从map中删除。最后返回结果字符串即可。
以下是实现这个算法的代码:
```go
package main
import (
"fmt"
)
func removeDuplicates(s string) string {
// 创建一个map来记录每个字母的出现次数
letterCount := make(map[rune]int)
for _, letter := range s {
letterCount[letter]++
}
// 创建一个结果字符串
result := ""
// 遍历输入字符串
for _, letter := range s {
// 如果该字母在map中的计数大于0,则将其添加到结果字符串中,并将计数减1
if letterCount[letter] > 0 {
result += string(letter)
letterCount[letter]--
}
}
return result
}
func main() {
s := "cbacdcbc"
fmt.Println(removeDuplicates(s)) // 输出:"acdb"
}
```
这段代码首先创建了一个名为`letterCount`的map来记录每个字母的出现次数。然后,它遍历输入字符串`s`,并将每个字母添加到`result`字符串中,同时将`letterCount`中对应的计数减1。最后返回结果字符串`result`。
#福大大架构师每日一题#2023-11-29:用go语言,给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出
为了解决这个问题,我们可以使用Go语言的map数据结构来记录每个字母的出现次数,然后遍历字符串s,将每个字母添加到结果字符串中,如果map中对应的字母计数为0,则将其从map中删除。最后返回结果字符串即可。 以下是实现这个算法的代码: ```go package main import ( "fmt" ) func removeDuplicates(s string) string { // 创建一个map来记录每个字母的出现次数 letterCount := make(map[rune]int) for _, letter := range s { letterCount[letter]++ } // 创建一个结果字符串 result := "" // 遍历输入字符串 for _, letter := range s { // 如果该字母在map中的计数大于0,则将其添加到结果字符串中,并将计数减1 if letterCount[letter] > 0 { result += string(letter) letterCount[letter]-- } } return result } func main() { s := "cbacdcbc" fmt.Println(removeDuplicates(s)) // 输出:"acdb" } ``` 这段代码首先创建了一个名为`letterCount`的map来记录每个字母的出现次数。然后,它遍历输入字符串`s`,并将每个字母添加到`result`字符串中,同时将`letterCount`中对应的计数减1。最后返回结果字符串`result`。