我正在尝试编写python代码,该代码将包含一个字符串和一个长度,并搜索该字符串以告诉我该特定长度的哪个子字符串出现得最多,如果出现并列关系,则优先考虑第一个。你知道吗
例如,"cadabra abra" 2
应该返回ab
我试过:
import sys
def main():
inputstring = str(sys.argv[1])
length = int(sys.argv[2])
Analyze(inputstring, length)
def Analyze(inputstring, length):
count = 0;
runningcount = -1;
sequence = ""
substring = ""
for i in range(0, len(inputstring)):
substring = inputstring[i:i+length]
for j in range(i+length,len(inputstring)):
#print(runningcount)
if inputstring[j:j+2] == substring:
print("runcount++")
runningcount += 1
print(runningcount)
if runningcount > count:
count = runningcount
sequence = substring
print(sequence)
main()
但似乎无法让它发挥作用。我知道我至少在计数上做错了什么,但我不知道是什么。这也是我用Python编写的第一个程序,但我认为我的问题可能更多的是算法而不是语法。你知道吗
尝试使用内置方法,它们会让您的生活更轻松,方法如下:
编辑:
根据Stefan Pochmann注释更简单的语法:
为第一个Python程序提供了一个很好的解决方案。当你学习这门语言时,花一些时间阅读优秀的文档。它充满了例子和技巧。你知道吗
例如,标准库包括一个
Counter
类(显然)和一个OrderedDict
类,用于计算输入的键的顺序。但是文档中有一个例子,它将两者结合起来形成一个OrderedCounter
,可以用来解决如下问题:相关问题 更多 >
编程相关推荐