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

    79. Word Search

    Given a 2D board and a word, find if the word exists in the grid.

    The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once.

    Example:

    board =
    [
      ['A','B','C','E'],
      ['S','F','C','S'],
      ['A','D','E','E']
    ]
    
    Given word = "ABCCED", return true.
    Given word = "SEE", return true.
    Given word = "ABCB", return false.
    题意:给定二维字符数组,是否存在邻接字符组成字符串
    代码如下:
    /**
     * @param {character[][]} board
     * @param {string} word
     * @return {boolean}
     */
    //回溯
    var exist = function(board, word) {
          var visited=[];
        for(var i=0;i<board.length;i++){
            visited[i]=new Array();
            for(var j=0;j<board[i].length;j++){
                visited[i][j]=false;
            }
        }
        for(var i=0;i<board.length;i++){
           
            for(var j=0;j<board[i].length;j++){
               
               if(word.charAt(0)===board[i][j] && backtrack(board,word,visited,i,j,0) ) return true;
            }
        }
        return false;
        
    };
    var backtrack=function(board,word,visited,i,j,index){
        if(word.length===index){
            return true;
        }
        if(i<0 || j<0 || i>=board.length || j>=board[0].length || board[i][j] !== word.charAt(index) || visited[i][j]){
            return false;
        }
        visited[i][j]=true;
        if(
            backtrack(board,word,visited,i+1,j,index+1) ||
            backtrack(board,word,visited,i-1,j,index+1) ||
            backtrack(board,word,visited,i,j+1,index+1) ||
            backtrack(board,word,visited,i,j-1,index+1))
            return true;
        visited[i][j]=false;
        return false;
        
    }
  • 相关阅读:
    bzoj2815: [ZJOI2012]灾难
    bzoj1188: [HNOI2007]分裂游戏
    bzoj4538: [Hnoi2016]网络
    bzoj3594: [Scoi2014]方伯伯的玉米田
    bzoj2595: [Wc2008]游览计划
    bzoj3277: 串
    Django开发:(3.2)ORM:多表操作
    Django开发:(3.1)ORM:单表操作
    Django:(2)视图层&模板层
    Django开发:(1)django基础 & url控制器
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10568130.html
Copyright © 2011-2022 走看看