zoukankan      html  css  js  c++  java
  • [leetcode-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.
    For example,
    Given board =
    [
    ['A','B','C','E'],
    ['S','F','C','S'],
    ['A','D','E','E']
    ]
    word = "ABCCED", -> returns true,
    word = "SEE", -> returns true,
    word = "ABCB", -> returns false.

    思路:

    深度优先遍历。

    bool dfs(vector< vector< char> >& board, string word,int row ,int col ,int start,int m,int n,int length)
    {
        char curChar = board[row][col];
        bool res = false;
    
        if(curChar != word[start]) return false;
        if(start == length - 1) return true;
    
        board[row][col] = '*';
        if(row>0) res = dfs(board,word,row-1,col,start+1,m,n,length);
        if(!res && row < m-1) res = dfs(board,word,row+1,col,start+1,m,n,length);
        if(!res && col>0) res = dfs(board,word,row,col-1,start+1,m,n,length);
        if(!res && col<n-1) res = dfs(board,word,row,col+1,start+1,m,n,length);
        board[row][col] = curChar;
    
        return res;
    }
    bool exist(vector< vector< char> >& board, string word)
    {
        int m = board.size() , n = board[0].size(), length = word.size();
    
        if( m && n && length)
        {
            for(int i = 0;i < m;i++)
            {
                for(int j =0;j<n;j++)
                {
                    if(dfs(board,word,i,j,0,m,n,length))
                        return true;
                }
            }
        }
        return false;
    }
  • 相关阅读:
    Android环境配置问题
    Android diary 1
    Android diary 2
    myeclipse常见问题
    Mysql常用命令
    桉树系统公司市场高级副总裁David Butler:全球最广泛应用的企业内部云平台
    引用外部.css或.js文件的路径问题
    [基础知识]巧用项目生成事件属性自动打包
    TSQL经验总结
    [Silverlight]UI 开发规范
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6751970.html
Copyright © 2011-2022 走看看