将矩形划分为相等的正方形,每个仅包含一个特定元素

时间:2018-10-30 06:32:46

标签: algorithm

问题描述

在您定期遇到验证码的一个站点上,解决该问题需要很长时间。您想编写一个自动执行任务的机器人。 验证码是一张应该分成矩形碎片的照片。所有碎片应具有相同的面积,但边的大小可能不同。每个片段必须恰好包含一个路标。

您的同事已经对照片进行了预处理。他们将其分成小方块,并为每个方块定义主要对象。

照片以线条的形式呈现给您:

"TRABWARH  
 THSCAHAW  
 WWBSCWAA  
 CACACHCR"

对象名称: S道路标志(标志), T树(树), R-road(公路), B楼(建筑物), C型车(汽车), A-宠物(动物), W池(水), 人(人类)

注释

  • 照片中的路标数量始终大于1且小于10。
  • 每个片段必须是一个矩形。
  • 每个片段的面积应相同,但大小可能会有所不同。
  • 在输出数组中,片段应从上到下,从左到右(相对于左上角)。
  • 如果有多个解决方案,则比较方法会优先考虑第一个不同片段的最大宽度。
  • 如果没有解决方案,请返回一个空数组。

简单的测试用例

"TRABWARH\nTHSCAHAW\nWWBSCWAA\nCACACHCR"
["TRABWARH\nTHSCAHAW","WWBSCWAA\nCACACHCR"]

"CSRARHAR\nCWAHCBSW\nABWBSWBA\nRBSBTABH"
["CSRARHAR","CWAHCBSW","ABWBSWBA","RBSBTABH"]

"HSRSTBHC\nCAWTRTBT\nWBATSTRA\nTWRBRTRR\nRWTABSHB\nTWCBWBCA"
["HS\nCA\nWB\nTW\nRW\nTW","RSTBHC\nWTRTBT","ATSTRA\nRBRTRR","TABSHB\nCBWBCA"]

"TSRSBWAC\nASCSWBTC\nTTAHTABC\nAHWTRWWA"
[]

我的解决方案只是比较所有有效的矩形,但是很费时间。有什么建议么?谢谢。

0 个答案:

没有答案