Guest User

Untitled

a guest
Oct 17th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. class Solution {
  2. public boolean exist(char[][] board, String word) {
  3. if (board == null || board.length == 0 || board[0].length == 0) {
  4. return false;
  5. }
  6. int width = board.length;
  7. int height = board[0].length;
  8. boolean[][] used = new boolean[width][height];
  9. for (int i=0; i<width; i++) {
  10. for (int j=0; j<height; j++) {
  11. if (search(i, j, board, used, word, 0)) {
  12. return true;
  13. }
  14. }
  15. }
  16. return false;
  17. }
  18.  
  19. public boolean search(int x, int y, char[][] board, boolean[][] used, String word, int index) {
  20. if (index >= word.length()) {
  21. return true;
  22. }
  23. if (x<0 || y<0 || x>=board.length || y >= board[0].length || board[x][y] != word.charAt(index) || used[x][y]) {
  24. return false;
  25. }
  26. used[x][y] = true;
  27. if (search(x-1, y, board, used, word, index+1) ||
  28. search(x, y-1, board, used, word, index+1) ||
  29. search(x, y+1, board, used, word, index+1) ||
  30. search(x+1, y, board, used, word, index+1)) {
  31. return true;
  32. }
  33. used[x][y] = false;
  34. return false;
  35. }
  36. }
Add Comment
Please, Sign In to add comment