📅  最后修改于: 2023-12-03 15:23:02.838000             🧑  作者: Mango
这是国际空间研究组织(ISRO)的一道编程题,出自2009年ISRO计算机科学考试。
有一个字符串数组,每个字符串都是长度小于等于100的非空字符串。组成一个矩形,使得矩形内每一列的字符串都具有相同的字符集。矩形的高度和宽度都可以是任意的,找到最大的矩形面积并输出。
对于每组数据,输出最大矩形的面积。
4
abcdef
abcfgh
abfghi
abcklm
3
abb
aaa
aca
8
3
思路比较简单,直接枚举矩形的高和宽,分别计算每一列字符串的字符集合,如果相等则更新答案。时间复杂度 $O(n^3)$,可以通过本题。
while True:
try:
n = int(input())
words = []
for i in range(n):
words.append(input())
ans = 0
for w in words:
for j in range(len(w)):
for k in range(j+1, len(w)+1):
col_words = [words[i][j:k] for i in range(n)]
if all(set(col_words[i]) == set(col_words[i+1]) for i in range(n-1)):
ans = max(ans, len(w) * (k-j))
print(ans)
except:
break
代码片段中采用了 Python 语言,时间复杂度 $O(n^3)$,可以通过本题。