前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode: 79. Word Search

leetcode: 79. Word Search

作者头像
JNingWei
发布2018-09-27 17:01:26
4920
发布2018-09-27 17:01:26
举报
文章被收录于专栏:JNing的专栏

Python

代码语言:javascript
复制
# 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.

AC

代码语言:javascript
复制
class Solution():
    def exist(self, board, word):
        visited = [[False for __ in range(len(board[0]))] for _ in range(len(board))]
        for i in range(len(board)):
            for j in range(len(board[0])):
                if self.existRecu(board, word, 0, i, j, visited):
                    return True
        return False

    def existRecu(self, board, word, cur, i, j, visited):
        if cur == len(word):
            return True
        if not (0 <= i < len(board) and 0 <= j < len(board[0])) or not (not visited[i][j] and board[i][j] == word[cur]):
            return False
        visited[i][j] = True
        res = self.existRecu(board, word, cur + 1, i + 1, j, visited) or \
              self.existRecu(board, word, cur + 1, i - 1, j, visited) or \
              self.existRecu(board, word, cur + 1, i, j + 1, visited) or \
              self.existRecu(board, word, cur + 1, i, j - 1, visited)
        visited[i][j] = False
        return res


if __name__ == "__main__":
    board = [
        "ABCE",
        "SFCS",
        "ADEE"
    ]
    assert Solution().exist(board, "ABCCED") == True
    assert Solution().exist(board, "SFCS") == True
    assert Solution().exist(board, "ABCB") == False
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python
  • AC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档