■ 题目描述
【单词搜索】
找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。
假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。
注意区分英文字母大小写,并且您只能上下左右行走,不能走回头路。
输入描述
输入第 1 行包含两个整数 n、m (0 < n,m < 21) 分别表示 n 行 m 列的矩阵,
第 2 行是长度不超过100的单词 W (在整个矩阵中给定单词 W 只会出现一次),
从第 3 行到第 n+2 行是指包含大小写英文字母的长度为 m 的字符串矩阵。
输出描述
如果能在矩阵中连成给定的单词,则输出给定单词首字母在矩阵中的位置(第几行 第几列),
否则输出“NO”。
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
5 5
HELLOWORLD
CPUCY
EKLQH
CHELL
LROWO
DGRBC
输出
3 2

public class WordSearch {public static int m,n;public static boolean find;public static void dfs(int i,int j,char[][] board, String word, boolean[][] visited,int pos){if (i<0||i>=m||j<0||j>=n||visited[i][j]||find||board[i][j]!=word.charAt(pos)){return;}if (pos==word.length()-1){find = true;return;}visited[i][j] = true;dfs(i+1,j,board,word,visited,pos+1);dfs(i,j+1,board,word,visited,pos+1);dfs(i-1,j,board,word,visited,pos+1);dfs(i,j-1,board,word,visited,pos+1);visited[i][j] = false;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);m = sc.nextInt();n = sc.nextInt();sc.nextLine();String word = sc.nextLine();System.out.println("word:"+word);char[][] board = new char[m][n];for (int i=0;i<m;i++){String str = sc.nextLine();System.out.println(str);for (int j=0;j<n;j++){board[i][j] = str.charAt(j);}}boolean[][] visited = new boolean[m][n];for (int i=0;i<m;i++){for (int j=0;j<n;j++){if (board[i][j] == word.charAt(0)) {dfs(i, j, board, word, visited, 0);if (find) {System.out.print(i + 1);System.out.print(" ");System.out.print(j + 1);return;}}}}}
}

【华为校招】【校招】【Java】单词搜索(DFS)相关推荐

  1. [Leetcode][第79题][JAVA][单词搜索][DFS][回溯]

    [问题描述][中等] [解答思路] 1. DFS繁琐版本 class Solution {public boolean exist(char[][] board, String word) {bool ...

  2. 华为机试:单词搜索(找到它)

    [编程题目 |200分] 单词搜索[2021 H2, 2022 Q1,Q2 考试题] 题目描述 找到它是一个小游戏,你需要在一个矩阵中找到给定的单词. 假设给定单词 HELLOWORD,在矩阵中只要能 ...

  3. 华为OD机试 - 单词搜索(Java JS Python)

    题目描述 找到它是一个小游戏,你需要在一个矩阵中找到给定的单词. 假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O-&g ...

  4. 79. 单词搜索(dfs)

    给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同一个单元格内的字 ...

  5. leetcode 79.单词搜索 dfs

    原题链接 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同一个单 ...

  6. 华为oj题java单词博弈_【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组

    描述: 编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返 ...

  7. LeetCode算法题13:DFS/BFS - 单词搜索

    文章目录 单词搜索 DFS : 小小的优化 总结 单词搜索 题目链接:https://leetcode-cn.com/problems/word-search/ 题目描述: 给定一个 m x n 二维 ...

  8. [校招] 英文句子单词反转 - 哔哩哔哩 2020

    [校招] 英文句子单词反转 - 哔哩哔哩 2020 描述 原地翻转句子中单词的顺序,但单词内字符的顺序不变.要求:空间复杂度O(1),时间复杂度O(n). 输入 英文句子中单词以一个空格符隔开.为简单 ...

  9. 2014宇龙酷派校招西安java类笔试题(热乎的,还冒烟呢)

    2014宇龙酷派校招西安java类笔试题(热乎的,还冒烟呢) 分类: 校招笔经 or 面经2013-09-18 16:19 674人阅读 经过了 叫人伤感的 阿里,我决定去 这些小公司找找 信心,今天 ...

最新文章

  1. deploy java eclipse_使用eclipse的mvn deploy部署本地包到maven私有库
  2. mysql之 mysql 5.6不停机主主搭建(活跃双主基于日志点复制)
  3. Android 权限的一些细节
  4. Luogu 3698 [CQOI2017]小Q的棋盘
  5. apscheduler -定时任务
  6. 陕西电大学位英语计算机考试,2017年电大学位英语复习【呕心沥血整理、电大考试必过】.doc...
  7. Asciidoc语法
  8. mysql+last_query_cost_辛星简译MySQL中的last_query_cost
  9. McAfee企业版8.8——病毒库的备份与还原
  10. ESP8266与网络调试助手通讯
  11. 数据库连接池——基本原理
  12. kkrieger(100k的3DFPS游戏)+机器码游戏+97年编程第一名作品以及新的最牛的GAE云计算
  13. 扩增子图表解读2散点图:组间整体差异分析(Beta多样性)
  14. 036.crud准备
  15. MySQL篇之授权用户可以远程访问数据库
  16. IDA F5堆栈不平衡的处理
  17. 超详细!简单的物联网模块esp8266接入小爱爱同学控制电器(一)——控制开关灯
  18. 常见即时通讯:网易IM 、腾讯IM、环信IM、融云IM、leancloud IM介绍
  19. [Darktable]dt源码分析(未完)
  20. 基于CNN和VLAD的人体行为识别研究

热门文章

  1. 自定义类 无极限树形结构菜单(繁杂版)
  2. 常用数据集/工具下载地址
  3. 小高考三门计算机能报大专吗,美术生小高考的要求吗
  4. 【话费充值平台】话费充值平台接口设计
  5. python获取当前时间的函数_Python日期与时间
  6. 股权转让这个创业方向靠谱吗?关于潜力股这个创业公司的一些思考
  7. 哈希切割+布隆过滤器
  8. Errorcode? Thread1: EXC_BAD_ACCESS (code=EXCi386_GPFLT)
  9. 向企业微信发送文字、图片的接口【亲测有效】
  10. 香港为区块链专业人士降低移民门槛