python - 最常见的字符 - 用户提交的没有字典或计数器的字符串

标签 python string python-3.x

目前,我正在编写一个程序,该程序计算用户提交的字符串中的所有非空白字符,然后返回最常用的字符。我无法使用集合、计数器或字典。这是我想做的:

分割字符串以删除空格。然后计算每个字符并返回一个值。我本来想在这里发布一些东西,但到目前为止我所尝试的一切都遭遇了严重的失败。我最接近的是这个程序:

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/

相关文章:

python-3.x - Pyro4用于非网络进程间通信

python - Matplotlib 轴标签不显示

python - 寻找提高使用 Pandas 库的 python 脚本速度的方法

python - 如何获取网页的html dom及其框架

python - 如何正确设置带有约束和多个最优值的 scipy.optimize 最小化?

string - VB6 文本框字体粗细操作

javascript - JS直接访问Concat方法

c# - 在严格的文本中获取文本的特定部分

python - 如何从 Numpy 的 polyfit 推导出方程?

python - 如何在从另一个小部件的拖放事件期间突出显示表格单元格