单词方阵
给一n×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如:
输入:
8 输出:
qyizhong *yizhong
gydthkjy gy******
nwidghji n*i*****
orbzsfgz o**z****
hhgrhwth h***h***
zzzzzozo z****o**
iwdfrgng i*****n*
yyyygggg y******g
问题分析:
不用递归dfs是因为目标的长度是定的,所以知道走多少步可以到达终点,要是不知道多少步到达终点的话,就需要用递归
首先肯定是需要录入n个字符串的,然后将字符串转换成char的二维数组,这个有点难搞,需要注意charAt函数是以0坐标开始的,然后记得是j-1;观察打印格式,肯定是要判断条件得,所以if-else,判断条件就是,能组成yizhong字符串的话就会被标记成1 那么初始化为0的vis肯定输出是*的,那么如何寻找呢?这是给定次数的寻找,所以直接for循环,要是不指定次数的寻找,那就是只能用递归来实现
首先遍历整个char二维数组找到y头结点,然后从y开始遍历,虽然是枚举八个方向进行,但是在一个方向上要7个字符都要一一对应,所以要加循环
保证一个方向上的7个字符对应之后,再寻找另外方向是否对应

本文讨论了如何在给定的n×n字母方阵中寻找定向的单词'yizhong',这些单词可以沿着8个方向连续摆放且可能交叉。由于目标单词长度固定,因此使用非递归的DFS方法,通过遍历和判断条件来实现。首先,将输入的字符串转换为char二维数组,然后利用循环检查每个可能的方向,确保每个方向上的7个字符匹配。如果匹配,则标记为单词,否则用*表示。
最低0.47元/天 解锁文章
374

被折叠的 条评论
为什么被折叠?



