go语言面试题:输入一段英文字符串,找出重复出现次数最多的字母

点击个人博客,查看更多文章https://elonjelinek.github.io/

package main

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	str, err := reader.ReadString('\n')
	if err == nil {
		fmt.Println(str)
	}
	max := 0
	maxA := ""
	for i := 'a'; i <= 'z'; i++ {
		a := string(i)
		n := strings.Count(str, a)
		if n != 0 {
			fmt.Println("该字符串中", a, "出现了", n, "次。")
		}
		if max < n {
			max = n
			maxA = a
		}
	}
	//fmt.Println(max)
	fmt.Println("重复出现次数最多的是:", maxA,",共",max,"次。") //如果有两个字母出现了同样的的次数,这样只能输出后一个。
	//for i := 'a'; i <= 'z'; i++ {
	//	n := strings.Count(str, string(i))
	//	if n == max {
	//		fmt.Println("重复出现次数最多的是:", string(i))
	//	}
	//}
}

os.stdin代表标准输入,ReadString('\n')表示遇到**换行(即\n)**结束输入。
运行之后,输入一段字母,最后按回车,这里h和t中间输入了一个空格,但是空格不结束,enter回车换行才结束

aaacccfgh tyui
aaacccfgh tyui

该字符串中 a 出现了 3 次。
该字符串中 c 出现了 3 次。
该字符串中 f 出现了 1 次。
该字符串中 g 出现了 1 次。
该字符串中 h 出现了 1 次。
该字符串中 i 出现了 1 次。
该字符串中 t 出现了 1 次。
该字符串中 u 出现了 1 次。
该字符串中 y 出现了 1 次。
重复出现次数最多的是: a ,共 3 次。

点击个人博客,查看更多文章https://elonjelinek.github.io/

你可能感兴趣的:(go语言)