懒人读算法(十一)-找文字
来源:互联网 发布:php授权验证系统源码 编辑:程序博客网 时间:2024/06/05 11:17
趣味题:
给一个字母矩阵,在给你一串字母,你要在字母矩阵里找到,且字母要上下左右相邻,且每个字母只能用一次
如:字母矩阵如下:
// [// ['A','B','C','E'],// ['S','F','C','S'],// ['A','D','E','E']// ]
当输入 word = “ABCCED”, -> returns true,
当输入 word = “SEE”, -> returns true,
当输入 word = “ABCB”, -> returns false.
答案:
public class Solution { public boolean exist(char[][] board, String word) { char[] w = word.toCharArray(); for(int i = 0; i < board.length; i++) { for(int j = 0; j < board[0].length; j++) { if(search(board, i, j, w, 0)) return true; } } return false; } public boolean search(char[][] board, int i, int j, char[] w, int index) { if(index == w.length) return true; if(i < 0 || i >= board.length || j < 0 || j >= board[0].length) return false; if(board[i][j] != w[index]) return false; board[i][j] ^= 256; boolean exist = search(board, i + 1, j, w, index + 1) || search(board, i - 1, j, w, index + 1) || search(board, i, j + 1, w, index + 1) || search(board, i, j - 1, w, index + 1); board[i][j] ^= 256; return exist; }}
阅读全文
0 0
- 懒人读算法(十一)-找文字
- 懒人读算法(一)-寻找名人
- 懒人读算法(二)-细胞问题
- 懒人读算法(六)-查找剩余范围
- 懒人读算法(七)-旋转矩阵
- 懒人读算法(八)-所有子集
- 懒人读算法(十)-区间总结
- 懒人读算法(三)-添加新区间
- 懒人读算法(四)-寻找最大连续值
- 懒人读算法(五)-求最大子数组
- 懒人读算法(九)-所有子集(有重复)
- 懒人读算法(十二)-两个和下标
- 排序算法之懒人排序
- “懒人”
- 懒人
- 懒人
- 懒人
- 懒人
- 690. Employee Importance
- GIT中文乱码问题解决方案
- BZOJ 1375 Bicriterial routing 双调路径 (二维最短路)
- 将Android项目上传到Github
- SQL中EXISTS的用法
- 懒人读算法(十一)-找文字
- C#调用OpenCV2.4.9和OpenCV3.0.0
- 基数排序(桶排序)
- Android极光推送区分测试正式环境详解
- IDEA配置github并上传项目
- java多次发送邮件
- PHP开发中关于smarty的基础使用
- python脚本实现scp上传下载功能
- angular 在文本框输入内容替换旧的内容