Problem Description
问题描述
输入n个字符串,比较这些字符串的大小并统计并按字典序输出字符串及出现个数
输入格式
输入的第一行包含一个整数n,表示字符串个数。接下来n行,表示输入的字符串。
输出格式
输出n行,每行包含一个字符串及一个整数,表示字符串及出现个数。
样例输入
5
aab
bbc
aab
sdffg
sgjklsa
样例输出
aab 2
bbc 1
sdffg 1
sgjklsa 1
数据规模和约定
30% l=1
30% l=10
20% l<=100
100% n<=1000,l<=1000
Reference Code
package 比大小;
import java.util.Scanner;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
//很明显要使用map结构来储存建(字串)和值(次数)
//但涉及到字串排序,那很明显TreeMap
Scanner sr = new Scanner(System.in);
int n = sr.nextInt();
//建(字串)和值(次数)
TreeMap<String, Integer> tree = new TreeMap<String, Integer>();
for (int i = 0; i < n; i++) {
String s = sr.next();
//将获取到的字串判断是否存在TreeMap里,如果存在,将值+1
if (tree.containsKey(s)) {
int value = tree.get(s);
tree.put(s, value+1);
//将获取到的字串判断是否存在TreeMap里,如果不存在,压入键值对
}else {
tree.put(s, 1);
}
}
//TreeMap里是已排好序的,直接输出即可
for (String key : tree.keySet()) {
System.out.println(key+" "+tree.get(key));
}
}
}