擅长:python、mysql、java
<p>您可以使用<code>itertools.groupby</code>快速查找某些字符的重复计数,使用<code>izip_longest(*matrix)</code>来转置矩阵(交换其行和列)。在</p>
<pre><code>from itertools import groupby, izip_longest
matrix_string = """
afaaf
rbaca
rlaff
"""
def longest_repetition(row):
return max((sum(1 for item in group), letter)
for letter, group in groupby(row)
if letter is not None)
def main():
matrix = [[letter for letter in row.strip()]
for row in matrix_string.strip().split('\n')]
count, letter = max(
max(longest_repetition(row) for row in matrix),
max(longest_repetition(col) for col in izip_longest(*matrix))
)
print letter, count
if __name__ == '__main__':
main()
</code></pre>
<p>由于您已经更新了需求,这里是代码的递归版本,并提供了一些解释。如果这不是一个任务,而这个任务是在现实生活中遇到的问题,那么您应该使用第一个版本。在</p>
^{pr2}$