单词搜索
来源:互联网 发布:怎样修改导航仪端口 编辑:程序博客网 时间:2024/06/06 05:57
给出一个二维的字母板和一个单词,寻找字母板网格中是否存在这个单词。
单词可以由按顺序的相邻单元的字母组成,其中相邻单元指的是水平或者垂直方向相邻。每个单元中的字母最多只能使用一次。
样例
给出board =
[
"ABCE",
"SFCS",
"ADEE"
]
word = "ABCCED", ->返回 true,
word = "SEE",-> 返回 true,
单词可以由按顺序的相邻单元的字母组成,其中相邻单元指的是水平或者垂直方向相邻。每个单元中的字母最多只能使用一次。
样例
给出board =
[
"ABCE",
"SFCS",
"ADEE"
]
word = "ABCCED", ->返回 true,
word = "SEE",-> 返回 true,
word = "ABCB", -> 返回 false.
import java.util.Scanner;/** * 给出一个二维的字母板和一个单词,寻找字母板网格中是否存在这个单词。单词可以由按顺序的相邻单元的字母组成,其中相邻单元指的是水平或者垂直方向相邻。每个单元中的字母最多只能使用一次。样例给出board =[ "ABCE", "SFCS", "ADEE"]word = "ABCCED", ->返回 true,word = "SEE",-> 返回 true,word = "ABCB", -> 返回 false. * * @author Dell * */public class Test123 {public static boolean exist(char[][] board, String word){ if(word=="") return false; int n=board.length; int m=board[0].length; boolean[][] visited=new boolean[n][m]; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(search(board, visited, i, j, word, 0)) return true; } }return false;}public static boolean search(char[][] board, boolean[][] visited, int row, int col, String word, int start){if(start==word.length()){return true;}boolean result=false;if(row>=0&&row<board.length&&col>=0&&col<board[0].length&&visited[row][col]==false&&word.charAt(start)==board[row][col]){visited[row][col]=true;start++;result=search(board,visited,row-1,col,word,start)||search(board,visited,row,col+1,word,start)||search(board,visited,row+1,col,word,start)||search(board,visited,row,col-1,word,start);if(result==false){visited[row][col]=false;start--;}}return result;} public static void main(String[] args) {Scanner sc=new Scanner(System.in); int n=sc.nextInt(); sc.nextLine(); String[] s=new String[n]; for(int i=0;i<s.length;i++) { s[i]=sc.nextLine(); } char[][] board=new char[n][]; for(int i=0;i<s.length;i++) { board[i]=s[i].toCharArray(); } String word=sc.next(); System.out.println(exist(board,word)); }}
阅读全文
0 0
- 单词搜索
- 单词搜索
- 单词搜索
- 7.9 单词游戏 搜索
- 单词搜索迷宫游戏
- 单词拼接 搜索
- 字符串搜索最长单词
- 题目:单词搜索
- lintcode-单词搜索-123
- 单词搜索 II
- lintcode ----单词搜索
- LintCode 单词搜索 II
- 单词搜索树
- LintCode : 单词搜索 II
- lintcode,单词搜索
- Leetcode032--单词的搜索
- 单词搜索 -LintCode
- 单词搜索 II-LintCode
- java 日期选择器(带时间)
- Executor框架
- Android特殊字体的处理---加下划线等
- AbsListView的重用机制——“存”方法分析
- ASP.NET MVC 5 实现基于Quartz.net 的任务调度管理平台(三)
- 单词搜索
- Activity 获取 view getContentView
- python笔记4_运算符和判断
- 聚类与分类算法
- maximum mean discrepancy
- 传智播客---Filter 过滤器 的详细使用介绍
- 基于boost的共享内存系列-map
- python连接mysql数据库
- 百度的搜索排名原则