我有一个矩阵
([ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[ 13, 14, 3, 16],
[ 2, 18, 19, 20])
和搜索字符串。任务是找出搜索字符串中的数字是否是矩阵中沿x和y坐标彼此相邻的值。
"2,7,12,16"
应该返回true "2,4,7,12"
应该返回true "1,6,8,12"
应该返回false "1,5,14,15"
应该返回false &validateMatrix($number2search,\@matrix);
sub validateMatrix{
my($a,$d) = @_;
my @s = split(",",$a);
my @matrix = @{$d};
???
??
return(true or false)
}
答案 0 :(得分:1)
我不确定你认为算法中的邻居是什么。矩阵被认为是周期性的吗?在任何一种情况下,算法如下。
第2步是可选的,因为您可以在搜索步骤中迭代查找匹配的邻居,但它有助于区分问题。
开始映射也可以被认为是一个与所有其他位置相邻的特殊位置,这也简化了后面的算法,因为你没有特殊情况下搜索字符串中的第一个数字。