题解 | #简单错误记录#

删除字符串中出现次数最少的字符

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)
    }
}
全部评论

相关推荐

后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
能干的三文鱼刷了100道题:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务