Java编程能力强化(2)――搜索解决方案类问题的通用解法(二)

2014-11-23 23:56:47 · 作者: · 浏览: 1
")的作用防止去和回船上的动物是一样的。

5、 public int[] move(int state[],String info){
int lang = 0;
try{
lang = Integer.parseInt(info.substring(0,2));
}catch(Exception e){
lang = Integer.parseInt(info.substring(1,2));
}
int yang = 0;
try{
yang= Integer.parseInt(info.substring(2));
}catch(Exception e){
yang = Integer.parseInt(info.substring(3));
}
int[] result = new int[state.length];
result[0] = state[0]+lang;
result[1] = state[1]+yang;
return result;
}

注意:try语句的使用,因为+3转换为数字的时候出现异常

另外不能直接修改state的元素值然后把state返回。

6、public boolean check(int state[]){
判定羊的个数不能小于狼的个数。

7、public boolean hasExist(StringBuffer str){
判断是否有死循环。

8、public void printResult(StringBuffer str){
输出结果方案。

大家可以试着使用广度优先的方式实现代码,可以不用递归的方式进行处理(如果递归的层数比较多,会出现堆栈溢出问题)。