判断两个数字是不是变位词

方法一:依次取出其中一个词中的每一个数字和第二个词中的数字进行比较

def judge(a,b):
    str1 = str(a)
    
    str2 = str(b)
    
    n = 0
#判断
    for i  in range(len(str1)):
        if str2[i] not in str1:
            n = n + 0
        else:
            n =n + 1
    if n == len(str1):
        print('true')
    else:
        print('false')
a = 'asdf'
b = 'fdsa'
judge(a,b)

方法二,将每个词中的元素依次排列后判断对应位置的是否一样

def judge(a,b):
    list1 = list(a)
    list2 = list(b)
#对其中的数字进行重新排
    list1.sort()
    list2.sort()
    n = 0
    for i in range(len(list1)):
        if list1[i] == list2[i]:
            n = n + 1
        else:
            n = n
    if n == len(list1):
        print('true')
    else:
        print('false')

def judge(a,b):
    list1 = list(a)
    list2 = list(b)
    pos1 = [0] * 26
    pos2 = [0] * 26
# 统计啊a,b 中每个单词出现的个数,如果所有的个数一样的话,就可以了
    for i in range(len(list1)):
        pos = ord(list1[i]) - ord('a')
        pos1[pos] += 1
    for i in range(len(list2)):
        pos = ord(list2[i]) - ord('a')
        pos2[pos] += 1
#比较每个字母的个数
    j = 0
    stillok = True
    while j < 26 and stillok:
        if pos1[j] == pos2[j]:
            j = j+1
        else:
            stillok = False
    return stillok
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值