如果一串数据有较多的重复,我们可以记录重复的次数。例如:对于AAAAAAAAAABCBCBCBCBCBCAAAAADEFDEFDEFDEF.我们可以这么写:10A6BC5A4DEF.
原来39个字符,压缩后就是12个字符。请你编程把所给的信息进行压缩。
如果连续的子串没有重复,这串就计为1。例如:ABCDEF,压缩后是1ABCDEF.输入
AAAAAAAAAABCBCBCBCBCBCAAAAADEFDEFDEFDEF
NMNMNOOOPPPOOOPPP
DFGHJ
HELLO输出
10A6BC5A4DEF
2NM1N3O3P3O3P
1DFGHJ
1HE2L1O
要咋办?
原来39个字符,压缩后就是12个字符。请你编程把所给的信息进行压缩。
如果连续的子串没有重复,这串就计为1。例如:ABCDEF,压缩后是1ABCDEF.输入
AAAAAAAAAABCBCBCBCBCBCAAAAADEFDEFDEFDEF
NMNMNOOOPPPOOOPPP
DFGHJ
HELLO输出
10A6BC5A4DEF
2NM1N3O3P3O3P
1DFGHJ
1HE2L1O
要咋办?
Scanner scanner = new Scanner(System.in);
String inPut = scanner.nextLine();
Map<String, Integer> map = new LinkedHashMap();
for(int i = 0; i < inPut.length(); i++){
String key = String.valueOf(inPut.charAt(i));
if(map.containsKey(key)){
map.put(key, map.get(key)+1);
}else{
map.put(key, 1);
}
}
Set<String> keys = map.keySet();
for(String s : keys){
System.out.print(map.get(s) + s);
}
}