题解 | #简单错误记录#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
golang 解法
package main
import (
"bufio"
"fmt"
"os"
"sort"
"strings"
)
func main() {
bs := bufio.NewScanner(os.Stdin)
for bs.Scan() {
input := bs.Text()
ret := ""
mp := make(map[string]int)
for _, i := range input {
if _, ok := mp[string(i)]; ok {
continue
}
n := strings.Count(input, string(i))
mp[string(i)] = n
}
//tmp
tmp := make(map[int]string)
for k, v := range mp {
if _, ok := tmp[v]; ok {
tmp[v] = tmp[v] + "|" + k
} else {
tmp[v] = k
}
}
// slice 排序
var s []int
for k := range tmp {
s = append(s, k)
}
l := len(s)
if l > 0 {
sort.Ints(s)
less := s[0]
str := tmp[less]
strs := strings.Split(str, "|")
for _, i := range input {
flag := false
for _, s := range strs {
if s == string(i) {
flag = true
continue
}
}
if flag {
continue
}
ret = ret +string(i)
}
}
fmt.Println(ret)
}
}
