zoukankan      html  css  js  c++  java
  • 79. Word Search

    一、题目

      1、审题

      

      2、 分析

        给出一个二维的字符数组 board,一个字符串 word;在 board 中可以向左右、上下延伸,判断 word 是否可以在延伸中找到。其中 board 中每个字符只能用一次。

    二、解答

      1、思路:

        运用递归的思想进行实现。

        开辟一个二维数组的空间用于记录该字符是否被使用。

    class Solution {
        public boolean exist(char[][] board, String word) {
            if(board == null)
                return false;
            int rows = board.length, cols = board[0].length;
            if(rows == 0 || cols == 0 || rows*cols < word.length())
                return false;
            
            boolean[][] isUsed = new boolean[rows][cols];
            for (int row = 0; row < rows; row++) {
                for (int col = 0; col < cols; col++) {
                    if(exist(board, row, col, word.toCharArray(), isUsed, 0))
                        return true;
                }
            }
            return false;
        }
        
        private boolean exist(char[][] board, int row, int col, char[] charArray, boolean[][] isUsed, int index) {
            
            if(index == charArray.length)
                return true;
            if(row < 0 || col < 0 ||
                    row == board.length || col == board[0].length)
                return false;
            
            if(isUsed[row][col] || board[row][col] != charArray[index])
                return false;
            
            isUsed[row][col] = true;
            boolean isExist = exist(board, row, col+1, charArray, isUsed, index+1)
                    || exist(board, row, col-1, charArray, isUsed, index+1)
                    || exist(board, row+1, col, charArray, isUsed, index+1)
                    || exist(board, row-1, col, charArray, isUsed, index+1);
            isUsed[row][col] = false;
            
            return isExist;
        }
    }
  • 相关阅读:
    最近的一些心理活动
    object_c函数多个返回值
    nslayoutConstraint
    判断一些常用的东西
    color 的一些处理
    最近的心理活动
    加载不同的nib文件
    Be a person
    按钮居左显示
    SQLite错误码
  • 原文地址:https://www.cnblogs.com/skillking/p/9692342.html
Copyright © 2011-2022 走看看