文巾解题 面试题 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. 判定字符是否唯一的主要内容,如果未能解决你的问题,请参考以下文章