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

Posted

技术标签:

【中文标题】如何在二维字符数组中找到相同字符的菱形?【英文标题】:How to find rhombus of the same char in 2D Char Array? 【发布时间】:2022-01-12 02:23:48 【问题描述】:

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

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

thk

另一件事,我不能使用递归。 Example of rhombus in 2d array

【问题讨论】:

请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

可能的方法:

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

在四个方向上遍历所有对角线,如果邻居相似,则增加辅助数组的相应条目。例如,从右下角的顶部“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] 对中左角最大的菱形

【讨论】:

@Swanky_Dwarf 我的回答不清楚吗?

以上是关于如何在二维字符数组中找到相同字符的菱形?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中,对于不知道长度的数组怎样输入。。。

C语言中,对于不知道长度的数组怎样输入。。。

java字符串,包,数组及空心正方形,菱形的实例

C-二维数组作为函数参数, 字符数组

C#在一个数组里找到相同的字符串

如何在 C# 中从二维矩形字符数组的一行创建字符串?