python “变位词”判断问题

本文探讨了三种判断变位词的方法:逐字比较、排序比较和计数比较。在简单假设单词为小写且长度相等的情况下,逐字比较通过遍历每个字母判断其在另一单词中是否存在;排序比较则是将字母排序后比较;计数比较则统计字母频率表进行判断。每种方法都有其独特的算法分析。
摘要由CSDN通过智能技术生成

问题描述:变位词指的是两个单词之间存在字母的重新排列关系,例如:heart和earth,python和typhon.

为了问题的简单描述,我们假设两个词都是小写,并且长度相同。

解决这个问题,我们有三种方法:

方法一:逐字比较法

思路:遍历第一个单词的每个字母,判断字母是否在另一个单词中,如果每个字母都在另一个单词中,则说明是是变位关系。

算法分析:

 

def anagramsolution(s1,s2):
    alist = list(s2)  #复制s2 到达列表
    pos1 = 0
    stillok = True
    while pos1 <len(s1) and stillok :  #循环s1的每个字符串
        pos2 =0
        found = False
        while pos2 < len(s2) and not found:
            if s1[pos1] == alist[pos2]:
                found = True   #在s2逐个对比 ,要是找到了直接跳出循环&#x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值