算法分析课每周练习 Word Search II
来源:互联网 发布:安卓的内存优化 编辑:程序博客网 时间:2024/06/06 03:13
题目
Word Search II
Given a 2D board and a list of words from the dictionary, find all words in the board.
Each word must 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 in a word.
分析
有一种叫boggle的游戏
class Solution(Object): # @param board, a list of lists of 1 length string # @param word, a string # @return a boolean def findWords(self, board, word): def dfs(x, y, word): if len(word)==0: return True #up if x>0 and board[x-1][y]==word[0]: tmp=board[x][y]; board[x][y]='#' if dfs(x-1,y,word[1:]): return True board[x][y]=tmp #down if x<len(board)-1 and board[x+1][y]==word[0]: tmp=board[x][y]; board[x][y]='#' if dfs(x+1,y,word[1:]): return True board[x][y]=tmp #left if y>0 and board[x][y-1]==word[0]: tmp=board[x][y]; board[x][y]='#' if dfs(x,y-1,word[1:]): return True board[x][y]=tmp #right if y<len(board[0])-1 and board[x][y+1]==word[0]: tmp=board[x][y]; board[x][y]='#' if dfs(x,y+1,word[1:]): return True board[x][y]=tmp return False for i in range(len(board)): for j in range(len(board[0])): if board[i][j]==word[0]: if(dfs(i,j,word[1:])): return True return False
注:连做几题都在s大的CS106B/X里面见过,这。。。
阅读全文
0 0
- 算法分析课每周练习 Word Search II
- 算法分析课每周练习 Word Break II
- 算法分析课每周练习 LRU Cache
- 算法分析课每周练习 Wildcard Matching
- [算法分析与设计] leetcode 每周一题: 126. Word Ladder II
- 算法分析课每周练习 Max Points on a Line
- 算法分析课每周练习 Median of Two Sorted Arrays
- 算法分析课每周练习 Regular Expression Matching
- 算法分析课每周练习 Minimum Window Substring
- 算法分析课每周练习 First Missing Positive
- 算法分析课每周练习 Find Median from Data Stream
- 算法分析课每周练习 Binary Tree Maximum Path Sum
- 算法分析课每周练习 Largest Rectangle in Histogram
- 算法分析课每周练习 The Skyline Problem
- 算法分析课每周练习 Merge k Sorted Lists
- 算法分析课每周练习 Sliding Window Maximum
- 算法分析课每周练习 Serialize and Deserialize Binary Tree
- 算法分析课每周练习 Trapping Rain Water
- Python---变量的管理/三元运算
- 正则表达式
- JMS(java message service)java消息服务
- 前端后端分离,怎么解决SEO优化的问题?
- Java多线程系列--“基础篇”03之 Thread中start()和run()的区别
- 算法分析课每周练习 Word Search II
- sql 查询表中所有字段的数据类型
- 解决Centos7下中文显示乱码
- AndroidStudio GsonFormat插件的介绍及集成使用
- vs2013 + QT组件开发串口程序
- [hihocoder1526]序列的值
- Effective C++第二章-构造,析构,赋值 -2
- Spring boot +Quartz +mongodb的分布式定时任务详解
- 类模板函数使用时实例化说明