实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
0 <= len(s) <= 100s[i]仅包含小写字母- 如果你不使用额外的数据结构,会很加分。
用一个大小为26的数组去存,字母下标的数量,遍历一遍就可以了,却不是最佳解法
class Solution {
fun isUnique(astr: String): Boolean {
val chars = astr.toCharArray()
val array = IntArray(26)
for(c in chars){
if( array[c.toInt()-97] == 0){
array[c.toInt()-97]++
} else{
return false
}
}
return true
}
}
用一个bit位为64 的long类型去左移再按位与
class Solution:
def isUnique(self, astr: str) -> bool:
mark = 0
for char in astr:
move_bit = ord(char) - ord('a')
if (mark & (1 << move_bit)) != 0:
return False
else:
mark |= (1 << move_bit)
return True