目前,我正在编写一个程序,该程序计算用户提交的字符串中的所有非空白字符,然后返回最常用的字符。我无法使用集合、计数器或字典。这是我想做的:
分割字符串以删除空格。然后计算每个字符并返回一个值。我本来想在这里发布一些东西,但到目前为止我所尝试的一切都遭遇了严重的失败。我最接近的是这个程序:
strin=input('Enter a string: ')
fc=[]
nfc=0
for ch in strin:
i=0
j=0
while i<len(strin):
if ch.lower()==strin[i].lower():
j+=1
i+=1
if j>nfc and ch!=' ':
nfc=j
fc=ch
print('The most frequent character in string is: ', fc )
如果您可以修复此代码或告诉我一种满足所需标准的更好的方法,那将很有帮助。而且,在你说这个问题已经在这个论坛上发生过一百次之前,请注意我专门创建了一个帐户来问这个问题。是的,有很多这样的问题,但有些问题是从文本文件或程序中的现有字符串中读取的。其中绝大多数包含字典、计数器或集合,我目前无法在本章中使用它们。
最佳答案
就用“老方法”来做吧。创建一个包含 26 个零的列表(好吧,这是一个集合,但这是一个非常基本的集合,所以应该不是问题),并根据位置增加。同时计算最大索引。
strin="lazy cat dog whatever"
l=[0]*26
maxindex=-1
maxvalue=0
for c in strin.lower():
pos = ord(c)-ord('a')
if 0<=pos<=25:
l[pos]+=1
if l[pos]>maxvalue:
maxindex=pos
maxvalue = l[pos]
print("max count {} for letter {}".format(maxvalue,chr(maxindex+ord('a'))))
结果:
max count 3 for letter a
关于python - 最常见的字符 - 用户提交的没有字典或计数器的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561067/