Bulls and Cows-LeetCode
2015-12-03 02:14
357 查看
姑且先记录一下程序调试成功的一些感想吧。
1. 对于java容器的掌握不够熟练,也是后来程序运行速度较慢的原因。
2. 容器中删减和插入了新的数据以后,原来的角标和检索的都发生了什么事情?
看看其他大神的代码,好好读《Thinking in java》不要偷懒。
1. 对于java容器的掌握不够熟练,也是后来程序运行速度较慢的原因。
2. 容器中删减和插入了新的数据以后,原来的角标和检索的都发生了什么事情?
看看其他大神的代码,好好读《Thinking in java》不要偷懒。
import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.function.Function; import java.util.function.ToDoubleFunction; import java.util.function.ToIntFunction; import java.util.function.ToLongFunction; public class Solution { String secret; String guess; int bullNum=0; int cowNum=0; public String getHint(String secret, String guess) { /* 1.pick out the bulls by checking the position one by one,and remove them,log the bulls number. 2.sort the numbers by increasing order 3.merge sort like to compare to find cows and log them. */ this.secret=secret; this.guess=guess; char[] secretArray=this.secret.toCharArray(); char[] guessArray=this.guess.toCharArray(); List<Character> secretArrayList=new ArrayList(); List<Character> guessArrayList=new ArrayList(); for(int i=0;i<secretArray.length;++i){ secretArrayList.add(new Character(secretArray[i])); guessArrayList.add(new Character(guessArray[i])); } Iterator<Character> secretIter=secretArrayList.iterator(); Iterator<Character> guessIter=guessArrayList.iterator(); for(;secretIter.hasNext()&&guessIter.hasNext();){ if(secretIter.next().equals(guessIter.next())){ secretIter.remove(); guessIter.remove(); bullNum++; } } Comparator <Character> comparator= new Comparator<Character>(){ public int compare(Character o1, Character o2) { // TODO Auto-generated method stub if (o1.charValue()>o2.charValue()){ return 1; } if (o1.charValue()<o2.charValue()){ return -1; } if (o1.charValue()==o2.charValue()){ return 0; } return 0; } }; secretArrayList.sort(comparator); guessArrayList.sort(comparator); //1.while two containers haven't reach their end. //Iterator<Character> secretIter=secretArrayList.iterator(); // Iterator<Character> guessIter=guessArrayList.iterator(); //guessIter. // guessArrayList. for(int i=0,j=0;i<secretArrayList.size()&&j<guessArrayList.size();){ if(secretArrayList.get(i).equals(guessArrayList.get(j))){ secretArrayList.remove(i); guessArrayList.remove(j); //i++; //j++; cowNum++; }else if(secretArrayList.get(i)<guessArrayList.get(j)){ secretArrayList.remove(i); }else{ guessArrayList.remove(j); } } /* while(secretIter.hasNext()&&guessIter.hasNext()){ if(guessIter.next().equals(secretIter.next())){ cowNum++; System.out.println("cowNum:"+cowNum); secretIter.remove(); guessIter.remove(); }else if(secretIter.next()<guessIter.next()){ secretIter.remove(); }else{ guessIter.remove(); } } */ String result=bullNum+"A"+cowNum+"B"; return result; } public static void main(String []args){ Solution solution=new Solution(); System.out.println(solution.getHint("1234", "4321")); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统