Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public boolean exist(char[][] board, String word) {
- if (board == null || board.length == 0 || board[0].length == 0) {
- return false;
- }
- int width = board.length;
- int height = board[0].length;
- boolean[][] used = new boolean[width][height];
- for (int i=0; i<width; i++) {
- for (int j=0; j<height; j++) {
- if (search(i, j, board, used, word, 0)) {
- return true;
- }
- }
- }
- return false;
- }
- public boolean search(int x, int y, char[][] board, boolean[][] used, String word, int index) {
- if (index >= word.length()) {
- return true;
- }
- if (x<0 || y<0 || x>=board.length || y >= board[0].length || board[x][y] != word.charAt(index) || used[x][y]) {
- return false;
- }
- used[x][y] = true;
- if (search(x-1, y, board, used, word, index+1) ||
- search(x, y-1, board, used, word, index+1) ||
- search(x, y+1, board, used, word, index+1) ||
- search(x+1, y, board, used, word, index+1)) {
- return true;
- }
- used[x][y] = false;
- return false;
- }
- }
Add Comment
Please, Sign In to add comment