实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分
一、位运算
class Solution:
def isUnique(self, astr: str) -> bool:
mark = 0
for i in astr:
move_bit = ord(i)-ord('a')
if(mark & 1<<move_bit != 0):
return False
else:
mark = mark + (1<<move_bit)
return True
把字符串中每个字符转化为1向左移N位的位运算,N为这个字符和字符‘a’的距离。每个出现的字符对应的位置为1;如果没有出现过,那么通过位运算,把这一位的值改写为1。
二、count()函数
class Solution:
def isUnique(self, astr: str) -> bool:
for i in astr:
if(astr.count(i)>1):
return False
return True
利用count函数计算每个字符在字符串中出现的次数即可。