首页 > 解决方案 > 从左到右,向下或对角向左(向上或向下)出现在矩阵中的单词的出现

问题描述

我有一个定义矩阵维度的输入,然后我有一个该维度的方阵,其中包含作为输入给出的随机字母,我有一个输入字符串我想搜索矩阵中的字符串,我可以在左边搜索这个字符串水平向右垂直向下对角向左(向上和向下)

说给定的矩阵

n = 3
A A K
A S K
A K K

  00 01 02
00 A  A  K 
10 A  S  K
20 A  K  K

对于给定的字符串 ASK,我必须搜索所有出现的“ASK”

输出将是4因为“ASK”出现了四次

2是简单的一个:01,11,21和第二个:10,11,12

但我无法理解如何将字符串沿对角线向上或向下向左匹配。第 3 次:02,11,20 和第 4 次:22,11,00

标签: javascriptcpython-3.xalgorithmsorting

解决方案


对于从下到左的对角线搜索,您应该使用与此类似的循环,假设它与行相关,而 j 与列相关,并且两个索引都从左上角的零开始:

对于对角线搜索,左上行应该递减,列递增:

int i = n-1;
int j = 0;
while(i >=0 )
{
     //access element x[i][j] and store to a resulting string
   i--;
   j++;   
}
// compare resulting string to predefined string

对于向上对角线搜索到左侧的行和列应该递减:

int i = n-1;
int j = n-1;
while(i >= 0)
{
    //access element x[i][j] and store to a resulting string
   i--;
   j--;   
}
// compare resulting string to predefined string

推荐阅读