0

我正在尝试在 2D 数组中搜索 2D 数组,并且我尝试了以下代码:

loopX: for (int x = 0; x < str1.length - str2.length + 1; ++x)
            loopY: for (int y = 0; y < str1[x].length - str2[0].length + 1; ++y)
            {
                for (int xx = 0; xx < str2.length; ++xx)
                for (int yy = 0; yy < str2[0].length; ++yy)
                {
                    if (str1[x + xx][y + yy] != str2[xx][yy])
                    {
                        k++;
                        continue loopY;

                    }
                }

                // Found the submatrix!
                System.out.println("Found at: " + x + " " + y);
                break loopX;
            }
            System.out.println(k);

在这段代码str1中是较大的 2D 数组,我试图在其中搜索和匹配较小的 2D 数组str2。两者都是char数组。

k是我需要跟踪的元素,以防不匹配。

我也想知道什么是最有效的方法。

对于这个我认为的算法,首先我应该只匹配两个数组的起始元素,当它们匹配时,只去匹配其他元素。

但是,我无法为此编写特定的代码。

如果有人可以帮助我,我将不胜感激。

4

0 回答 0