华为机试:删除字符串中出现次数最少的字符

sunls24 于 2021-01-18 发布 浏览量

题目

实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

注意每个输入文件有多组输入,即多个字符串用回车隔开

输入描述

字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。

输出描述

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

示例1

输入

abcdd
aabcddd

输出

dd
aaddd

解法参考

package main

import (
   "bufio"
   "fmt"
   "os"
)

func main() {
   input := bufio.NewScanner(os.Stdin)
   for input.Scan() {
      var str = input.Text()
      m := make(map[byte]int)
      for i := range str {
         m[str[i]]++
      }
      min := 20
      for _, v := range m {
         if v < min {
            min = v
         }
      }
      for i := range str {
         if m[str[i]] != min {
            fmt.Print(string(str[i]))
         }
      }
      fmt.Println()
   }
}