当前位置: 首页 > article >正文

212. 单词搜索 II

212. 单词搜索 II

在这里插入图片描述


Java:搜索全部可能

class Solution {
    StringBuilder sb;
    List<String> list;
    Set<String> set;

    private void dfs(int x, int y, int m, int n, char[][] board){
        if (x < 0 || x >= m || y < 0 || y >= n || board[x][y] == '.') {
            return;
        }
        if (sb.length() > 10) {  // 剪枝,不然超时
            return;
        }
        char ch = board[x][y];  
        sb.append(ch);        // 放在set判断之前
        if (set.contains(sb.toString())) {
            list.add(sb.toString());
            set.remove(sb.toString()); // oaa oa oa 题意没告诉不能重复放入ans
        }
        board[x][y] = '.';
        dfs(x + 1, y, m, n, board);
        dfs(x - 1, y, m, n, board);
        dfs(x, y + 1, m, n, board);
        dfs(x, y - 1, m, n, board);
        board[x][y] = ch;
        sb.deleteCharAt(sb.length() - 1);
    }

    public List<String> findWords(char[][] board, String[] words) {
        sb = new StringBuilder();
        list = new ArrayList<>();
        set = new HashSet<>();
        for (String str : words) {
            set.add(str);
        }
        int m = board.length, n = board[0].length;

        for (int i = 0; i < m; ++i) {
            for (int j = 0; j < n; ++j) {
                dfs(i, j, m, n, board);
            }
        }
        return list;
    }
}

http://www.kler.cn/a/148304.html

相关文章:

  • python魔术方法的学习
  • C#文字识别API场景解析、表格识别提取
  • C++单例模式实现
  • 《情商》提升:增强自我意识,学会与情绪共处
  • R语言机器学习与临床预测模型77--机器学习预测常用R语言包
  • gdb编译教程(支持linux下X86和ARM架构)
  • react等效memo的方法
  • vue3安装eslint和prettier,最简单的步骤
  • Appium自动化测试:sdk版本和手机版本不兼容你就这样做,分分钟解决问题
  • 音视频学习(十九)——rtsp收流(tcp方式)
  • django 新建流程
  • Flask Session 登录认证模块
  • Python小技巧:探索函数调用为何加速代码执行
  • 力扣23. 合并 K 个升序链表(java,最小堆解法)
  • vivado产生报告阅读分析27
  • 前端相关免查整合-vue、es、工具类等
  • 计算机丢失vcomp140.dll是什么意思,如何解决与修复(附教程)
  • 代码随想录算法训练营 ---第四十二天
  • ubuntu 使用快照启动polygon主网
  • C语言——数组转换
  • 野火霸天虎 STM32F407 学习笔记(六)系统时钟详解
  • 亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证
  • frp内网穿透
  • 4-docker-compose介绍(部署flask案例、yaml文件、启动)、新建flask项目、编写Dockerfile(用于构建flask项目的镜像)、
  • 头发的方向图(2D和3D)与合成
  • 【Mybatis】预编译/即时sql 数据库连接池