找出字符串中重复最多的字母

已知一个字符串s=“iuoifdjfjehafp”,其中有重复字母。请找出其中重复次数最多的那个字母。


两种方法:

1, 先排序,再循环一次把重复最多的字母记下来就可以了。但由于排序算法本身效率不高,因此这算是一个用时间换空间的做法。这其实和多次循环扫描的做法没有本质区别。

2, 还有一种方法是,字母一共也就26个。因此可以用26个int 变量 aNumber,bNumber...分别记录每个字母重复的次数,一遍扫描就可以完成。这算是用空间换时间的做法。

但如果把本题换成记录数组中重复最多的单词,这种方法就不适用了,因为单词的组合太多。


下面的示例演示的是第二种方法,语言是Python

def compare():
    
    stocks = ['d', 'r', 'd', 'a', 'f', 'a', 'f', 'f', 's', 's']
    maxRepeat=0
    repeat=1
    i=0
    
    stocks.sort()
    while i < len(stocks)-1:
        if stocks[i] == stocks[i+1]:
            repeat += 1
        else:
            repeat = 1
            
        if repeat > maxRepeat:
            maxRepeat = repeat
        i += 1
    print(maxRepeat)
    
    
compare()



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值