`

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

阅读更多
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[i]));   
    set.add(String.valueOf(chars[i]));   
   }   
   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 楼 gogopengyou 2011-08-17  
测试的字符串里加个"W",结果就不正确了

相关推荐

Global site tag (gtag.js) - Google Analytics