使用python3实现一个算法,确定一个字符串 s 的所有字符是否全都不同的多种解法?

解法一:

python,列表存储后判断字符是否在列表中

def isUniqueOne(astr: str) -> bool:
    strlist = []
    for s in astr:
        if s not in strlist:
            strlist.append(s)
        else:
            return False
    return True

解法二:同一类似,字典存储后判断字符是否在字典中

def isUniqueOne(astr: str) -> bool:
    ans = dict()
    for s in astr:
        if s not in ans:
            ans[s]=1
        else:
            return False
    return True

解法三:利用set集合元素不重复

def isUniqueTwo(astr: str) -> bool:
    if len(astr) == len(set(astr)):
        return True
    else:
        return False

解法四:python3的 ord函数,返回值是对应的十进制整数,如果有相同的字符串存在,if 里面的条件就不存在了,if里面的值已经被修改为1了,所以就会返回False,个人感觉复杂了,当然,前提是字符串必须只有26字母才行,不然要改

def isUniqueThree(astr: str) -> bool:
    hash_char = [0 for i in range(26)]
    for char in astr:
        if hash_char[ord(char) - 97] == 0:
            hash_char[ord(char) - 97] = 1
        else:
            return False
    return True

解法五:使用count()函数,直接判断

def isUniqueThree(astr: str) -> bool:
    for i in astr:
        if astr.count(i) > 1:
            return False
    return True

 解法六:同一二,输入字符串,判断是否有重复的字符-->剔除字符串中所有重复的字符-->对字符串与原字符串做比较-->没有变化,True;有变化,False

def isUniqueThree(astr: str) -> bool:
    nastr = str()
    for i in astr:
        if i not in nastr:
            nastr +=i
    return nastr ==astr

解法七:使用循环遍历,如果字符串的索引位置不相等但是值相等,则证明存在重复的字符串

def isUniqueThree(astr: str) -> bool:
    for s in range(len(astr)):
        for n in range(len(astr)):
            if s != n and astr[s] == astr[n]:
                return False
    return True

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊猫_water

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值