题目描述:给定一个字符串aaabcccaddfffaa
重叠子串个数为 a:5 d:2 c:3 f:3
每次判断当前字符串是否和下一个相等,如果相等则,则加加,如果到当前这个串的最后一个,则和前一个比较是否相等。
public static void sub(String str){
char a[] = str.toCharArray();
HashMap<Character,Integer> map = new HashMap<>();
for (int i = 0; i <a.length; i++){
if( i+1<a.length && (a[i+1]==a[i] ||a[i]==a[i-1]) || i+1==a.length && a[i]==a[i-1] ) {
if (map.containsKey(a[i])) {
map.put(a[i], map.get(a[i]) + 1);
} else {
map.put(a[i], 1);
}
}
}
for(Character key:map.keySet()){
System.out.println(key + ":" + map.get(key));
}
}