题目:
给定一字符串,求出现次数最多的那个字符及次数,如次数最多的字符有多个则都输出
思路:
1.首先读取字符串中的第一个字符,将字符串中与第一个字符相同的字符全部删除掉,然后通过计算删除前后字符串的长度差来确定该字符在字符串中出现的次数,最终比较出出现最多次的字符
2.设置一个list集合存储出现次数最多的字符,max_num记录出现最多的次数
(1)如果删除前后的字符串长度差等于前一次max_num,则添加到list
(2)如果删除前后的字符串长度差大于前一次max_num,清空list,更新max_str,list中添加该字符
代码:
import java.util.LinkedList;
import java.util.Scanner;
public class Cishu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
findmaxstr(line);
scanner.close();
}
public static void findmaxstr(String str){
int max_num = 0;
String max_str = "";
LinkedList<String> list = new LinkedList<>();
while (str.length() > 0){
String first = str.substring(0, 1);
int length = str.length();
str = str.replaceAll(first,"");
if (max_num == length-str.length()){
max_num = length-str.length();
max_str = first;
list.add(max_str);
}
if (max_num < length-str.length()){
list.clear();
max_num = length-str.length();
max_str = first;
list.add(max_str);
}
}
for (String c:list) {
System.out.println(c+":"+max_num);
}
}
}