【发布时间】:2020-05-05 18:00:14
【问题描述】:
试图找到最长的统一子串。
假设我有 abbbccda 那么我们必须得到“bbb”的索引位置,即。 [1, 3] 所以它应该返回 [1, 3] 。因为 Uniform Substring 从索引 1 开始,长度为 3 个字符。
其他例子:
"10000111" => [ 1, 4 ]
"aabbbbbCdAA" => [ 2, 5 ]
解决这个问题的python代码是什么
我的代码太长了。忽略打印有这么多看输出
x="aaaabbbbCdAA"
LIST1=[]
for char in x:
if(char not in LIST1 ):
LIST1.append(char)
print(LIST1)
list1=[]
for i in LIST1:
list1.append(x.count(i))
print(list1)
Max_length_Charcater= max(list1)
print(Max_length_Charcater)
index_Max_length_Charcater=list1.index(Max_length_Charcater)
print(index_Max_length_Charcater)
y=LIST1[index_Max_length_Charcater]
print(y)
l=index_Max_length_Charcater
start_of_max_length_character=x.find(y)
for i in range(len(x)):
if(x[i]==y):
l+=1
print(l)
print("({0},{1})" .format(start_of_max_length_character,l))
【问题讨论】:
-
你有没有写过代码尝试自己解决这个问题?
-
有很多不同的方法可以解决这个问题。你的解决方法出现了什么问题?
-
提示:1) 使用
set来确定每个字符串中的uniq 字符; 2) 使用正则表达式或 Python 字符串方法来查找这些 uniq 字符的运行长度; 3) 找到最长运行的索引。 -
不应该将
"aabbbbbCdAA"的输出改为[2, 6]吗? -
是的,我已经编写了代码,但是代码太长了。
标签: python python-3.x