zfsn 发表于 2013-1-28 19:28:22

求出现次数最多的那个字母及次数,如有多个重复的则都求出。〔金山公司面试题〕

import java.util.ArrayList;   import java.util.Collections;   import java.util.Iterator;   import java.util.TreeSet;   public class FindRepeatChar {   public static void doString(String strInput) {      char[] chars = strInput.toCharArray();      ArrayList<String> lists = new ArrayList<String>();      TreeSet<String> set = new TreeSet<String>();      for (int i = 0; i < chars.length; i++) {       lists.add(String.valueOf(chars));       set.add(String.valueOf(chars));      }      System.out.println(set);      Collections.sort(lists);      System.out.println(lists);      StringBuffer sb = new StringBuffer();      for (int i = 0; i < lists.size(); i++) {       sb.append(lists.get(i));      }      strInput = sb.toString();      System.out.println(strInput);      int max = 0;      String maxString = "";      ArrayList<String> maxList = new ArrayList<String>();      for (Iterator<String> its = set.iterator(); its.hasNext();) {       String os = (String) its.next();       int begin = strInput.indexOf(os);       int end = strInput.lastIndexOf(os);       int value = end - begin + 1;       if (value > max && value > 1) {        max = value;        maxString = os;        maxList.add(os);       } else if (value == max) {        maxList.add(os);       }      }      for (int i = 0; i < maxList.size(); i++) {       if (maxList.get(i).equals(maxString)) {        break;       }      }      System.out.println("出现最多的字符为:");      for (int i = 0; i < maxList.size(); i++) {       System.out.println(maxList.get(i) + "");      }      System.out.println();      System.out.println("出现最多的次数为:" + max);   }     public static void main(String[] args) {      String strInput = new String("aavzcadfdsfsdhshgWasdfasdf");      doString(strInput);   }   }   
页: [1]
查看完整版本: 求出现次数最多的那个字母及次数,如有多个重复的则都求出。〔金山公司面试题〕