字符串的完美度总结

来源:互联网 发布:ipad上快手显示无网络 编辑:程序博客网 时间:2024/05/21 06:43

今天把字符串的完美度搞定了,啊,期间遇到很多问题,现分享一下:

 

       我做字符串完美度的的思路分为好几个方案,不过目前只有一个实现了,现在把这个思路贴出来

        总的思路:

                  先将字符串进行拆分为一个字符数组,然后对每个字符出现的次数进行统计,然后按照次数的多少从26开始逐步的进行

         赋值,接下来就可以进行计算完美值了。

                     把代码贴出来:

  

public static int perfect(String s){char[]array=s.toCharArray();//用于获取每个字符  int maxValue=26;//字符中值最大时的情况int perfectSum=0;//保存完美值System.out.println("元素的个数为:"+array.length);//简历三个list集合一个保存第一次遇到的字符,一个保存期对应的值,一个用于保存期出现的次数,这三个list集合值是想对应的List<Character> listChar=new ArrayList<Character>();List<Integer> listValue=new ArrayList<Integer>();List<Integer> listCount=new ArrayList<Integer>();boolean flage=false;//先将每个字符的出现次数保存,然后根据次数进行分配值,然后再循环所有字符进行计算完美值for(int i=0;i<array.length;i++){for(int f=0;f<listChar.size();f++){Character yizhi=listChar.get(f);if(yizhi.charValue()==Character.toLowerCase(array[i])){//System.out.println("值有相同的为:"+array[i]);flage=true;listCount.set(f,new Integer(listCount.get(f).intValue()+1));break;}elseflage=false;}if(!flage){    int value=1;char change=Character.toLowerCase(array[i]);listChar.add(new Character(change));listCount.add(new Integer(value));}}//对相应的listValue赋初值for(int q=0;q<listChar.size();q++)listValue.add(new Integer(0));int max=0;//保存出现次数最多的值int maxId=0;//保存出现次数最多值得Id                  //进行对listValue进行赋值(是相应的字符(listChar)对应的值,根据listCount中的值由大到小进行分配)for(int r=0;r<listCount.size();r++){for(int t=0;t<listCount.size();t++){if(((max<=listCount.get(t).intValue())&&((listValue.get(t))==0))||((max<=listCount.get(t).intValue())&&r==0)){maxId=t;max=listCount.get(maxId).intValue();}}listValue.set(maxId,maxValue--);max=0;maxId=0;}//进行计算perfect值for(int p=0;p<listChar.size();p++){perfectSum=perfectSum+(listCount.get(p).intValue())*(listValue.get(p).intValue());}return perfectSum;}      

            思想总结:

                       1.对于每个问题的解决必须有一个清晰的解决方案,然后按方案进行编程

                       2.对于调试程序,一定要先进行静态调试,自己先分析,这样会使自己发现方案中不足

             java知识总结:

                       1.要学会看jdk的文档,当然得有一定的英文基础(我的就不是很好)

                       2.list集合其类型中必须是引用,不能是基本类型       

                   

原创粉丝点击