实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
- 0 <= len(s) <= 100
- 如果你不使用额外的数据结构,会很加分。
Python 解答:
1.使用集合
class Solution:
def isUnique(self, astr: str) -> bool:
return len(astr) == len(set(astr))
2.暴力
class Solution:
def isUnique(self, astr: str) -> bool:
for i in range(len(astr)):
for j in range(i+1, len(astr)):
if astr[i] == astr[j]:
return False
return True
3.数组,相当于python列表
class Solution:
def isUnique(self, astr: str) -> bool:
flag = [False for i in range(26)]
for c in astr:
if flag[ord(c)-ord('a')]:
return False
else:
flag[ord(c)-ord('a')] = True
return True
4.位运算,不使用其他数据结构的
class Solution:
def isUnique(self, astr: str) -> bool:
MASK = 0
for c in astr:
pos = ord(c)-ord('a')
bit = 1 << pos
if MASK & bit:
return False
else:
MASK |= bit
return True
留言