繁体   English   中英

如何在二维字符数组中找到相同字符的菱形?

[英]How to find rhombus of the same char in 2D Char Array?

假设我有一个具有 2d 字符数组(最大为 12*12)的代码,我想在字符数组序列中找到生成菱形的字符,我该怎么做? 我想过制作一个 boolean function 来检查每个地方是否与他的邻居具有相同的值以及使用它来查找菱形的其他功能,但我真的不知道如何使用它。

最后,我想打印菱形中心值和构成菱形的字符。

另一件事,我不能使用递归。 二维数组中的菱形示例

可能的方法:

制作四个相同大小的二维 integer arrays 或一个二维数组数组[0..3]。

在四个方向上遍历所有对角线,如果邻居相似,则增加辅助 arrays 的相应条目。 例如,从顶部“F”往右下方向走,将 0、1 和 2 分别放入UPLEFT[1][2], UPLEFT[2][3]UPLEFT[3][4]中。

现在再次扫描阵列。 当您有索引对[k][m]UPRIGHT[k][m]>0DOWNRIGHT[k][m]>0 ,选择最小值

Wdt = min(UPRIGHT[k][m], DOWNRIGHT[k][m])

并检查UPLEFT[k][r]DOWNLEFT[k][r]的值r = m + 2*Wdt downto m+2以显示在[k][m]对中具有左角的最大菱形

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM