給出一組字符串,找出字符串(全部的小寫和英文字母)的重疊子串,計算各個字母對應的重疊子串的長度子和,並按照從大到小進行輸出

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
import java.util.Map.Entry;
 public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
          Scanner sc = new Scanner(System.in);
          String s=sc.next();
          StringBuffer sb=new StringBuffer();
            TreeMap<Character,Integer> tmp=new TreeMap<Character,Integer>();
          sb.append(s.charAt(0));
          for(int i=1;i<s.length();i++) {
              if(s.charAt(i)!=s.charAt(i-1)) {
                  sb.append(" ");
                 sb.append(s.charAt(i)); 
              }
              else {
                  sb.append(s.charAt(i));  
              }
          }
          String s1=sb.toString();
          String[] s2=s1.split(" ");
          for(int i=0;i<s2.length;i++) {
              if(s2[i].length()>1) {
                  for(int j=0;j<s2[i].length();j++) {
                      if(tmp.containsKey(s2[i].charAt(j))) {
                          tmp.put(s2[i].charAt(j), tmp.get(s2[i].charAt(j))+1);
                      }
                      else {
                          tmp.put(s2[i].charAt(j), 1);
                      }
                  }
              }
          }
          
          List<Map.Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character, Integer>>(tmp.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
            //降序排序
            @Override
            public int compare(Entry<Character, Integer> o1, Entry<Character, Integer> o2) {
                //return o1.getValue().compareTo(o2.getValue());
                return o2.getValue().compareTo(o1.getValue());
            }
        });

        for (Entry<Character, Integer> mapping : list) {
            System.out.println(mapping.getKey() + ":" + mapping.getValue());
        }
          
    }
}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章