Word Search
来源:互联网 发布:淘宝客服中心怎么设置 编辑:程序博客网 时间:2024/06/14 11:22
这道题是典型的回退算法,类似于树中的DFS算法,关键在于递归算法框架的构成。
public class WordSearch { public boolean exist(char[][] board, String word) { int row = board.length; int col = board[0].length; for (int i=0;i<row;i++){ for (int j=0;j<col;j++){ if (board[i][j]!=word.charAt(0)){ continue; }else{ board[i][j] = 1; if (helper(board,i,j,word,0)){ return true; }else { board[i][j] = word.charAt(0); continue; } } } } return false; } private static boolean helper(char[][] board,int r,int c,String word,int step){ if (step==word.length()) return true; if (r-1>=0&&board[r-1][c]==word.charAt(step+1)){ board[r-1][c] = 1; if (helper(board,r-1,c,word,step+1)) return true; board[r-1][c] = word.charAt(step+1); } if (c+1<board[0].length&&board[r][c+1]==word.charAt(step+1)){ board[r][c+1] = 1; if (helper(board,r,c+1,word,step+1)) return true; board[r][c+1] = word.charAt(step+1); } if (r+1<board.length&&board[r+1][c]==word.charAt(step+1)){ board[r+1][c] = 1; if (helper(board,r+1,c,word,step+1)) return true; board[r+1][c] = word.charAt(step+1); } if (c-1>=0&&board[r][c-1]==word.charAt(step+1)){ board[r][c-1] = 1; if (helper(board,r,c-1,word,step+1)) return true; board[r][c-1] = word.charAt(step+1); } return false; }}
0 0
- Word Search
- Word Search
- word search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Poj 3181 Dollar Dayz【整数划分+大数】
- S3C2440-GPIO之button
- hdu3065(AC自动机)
- NOIp 2004 合并果子
- 一种适合创业公司的技术架构方案
- Word Search
- corethink功能模块探索开发(十一)后台查询数据列表
- Android Environment类的接口详解
- 类学习九
- 大话设计模式—备忘录模式
- 虚存的概念、原理以及替换算法
- IT行业导览-第5章-职业规划
- HDU 4407 Sum
- 关于QT窗口