每天一道编程题(二)------求字符串中个数最多的字符串的个数,并打印

给定一个字符串,找出其中相同字符的个数,打印出最多的字符串。一个字符串中可能包含a~z中的多个字符,如有重复,如Stringdata="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。〔金山公司面试题〕

(起初做这道题的时候存储在数组里,来实习公司,一老大说,一般这种求字符串的题目而且在java中一般是考你集合的知识,后来一看网上的解答,果真都是这样,而且时间复杂度小)把自己写的一个程序传了上来希望有人能有更好地方法

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;








public class FindRepeat {
  public static void doString(String str){
	  char[] array=str.toCharArray();
	  ArrayList list=new ArrayList();
	  TreeSet set=new TreeSet();
	  for(int i=0;imax)&&(value>1)){
			max=value;
		}
	}
	Set set2=hm.entrySet();
	Iterator iterator=set2.iterator();
    while(iterator.hasNext()){
    	Map.Entry mapentry=(Map.Entry)iterator.next();
		if(mapentry.getValue().equals(max)){
			System.out.println("最多的字符串为:"+mapentry.getKey());
			System.out.println("最多的次数为:"+max);
		}
	
    }
  }
  public static void main(String[] args){
	  String strInput = new String("aavzcadfdsfsdhshgWasdfasdf");
	  doString(strInput);
  }
}






你可能感兴趣的:(编程题)