文巾解题 面试题 01.01. 判定字符是否唯一

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文巾解题 面试题 01.01. 判定字符是否唯一相关的知识,希望对你有一定的参考价值。

1 题目描述

 2 解题思路

2.1 set

lass Solution:
    def isUnique(self, astr: str) -> bool:
        l1=len(astr)
        l2=len(set(astr))
        return l1==l2

2.2 位运算

设置一个数字,他转化为二进制之后有26位   每一位一开始都是0,如果这个数字第一次出现,也就是对应的这一位设置为1;如果这个数字第二次出现,那么返回False

class Solution:
    def isUnique(self, astr: str) -> bool:
        tmp=0
        for i in astr:
            num=ord(i)-ord('a')
            if((tmp>>num) & 1 ==1):
                return(False)
            else:
                tmp=tmp | (1<<num)
        return(True)

2.3 Replace

从后往前,每次将最后的那个字符replace成‘’,看每次减少的字符串长度是否为1

class Solution:
    def isUnique(self, astr: str) -> bool:
        l=len(astr)
        for i in range(l-1,-1,-1):
            print(i,astr)
            l=len(astr)
            astr=astr.replace(astr[i],'')
            l2=len(astr)
            if(l-l2==1):
                pass
            else:
                return(False)
        return(True)
class Solution:
    def isUnique(self, astr: str) -> bool:
        for i in astr:
            len1=len(astr)
            astr=astr.replace(i,'')
            len2=len(astr)
            if(len1-len2==1):
                pass
            else:
                return False
        return True
           

 

以上是关于文巾解题 面试题 01.01. 判定字符是否唯一的主要内容,如果未能解决你的问题,请参考以下文章

程序员面试金典-面试题 01.01. 判定字符是否唯一

Leetcode 面试题 01.01. 判定字符是否唯一

leetcode面试题 01.01. 判定字符是否唯一

力扣-面试题刷题第一天

算法程序员面试经典01.01. 判定字符是否唯一

文巾解题 面试题 01.06. 字符串压缩