leetcode上有道面试题:判断字符是否唯一
其中有一个答案是利用位运算符解决
class Solution:
def isUnique(self, astr: str) -> bool:
t = 0
for c in astr:
if t & (p := 1 << (ord(c) - 97)):
return False
t |= p
return True
作者:tuotuoli
链接:https://leetcode-cn.com/problems/is-unique-lcci/solution/mian-shi-ti-0101-pan-ding-zi-fu-shi-fou-wei-yi-ji-/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
:= 是海象运算符,可在表达式内部为变量赋值
比如原来
if (len(n) == len(a)) > 10:
需要调用len函数两次
但是使用海象运算符以后只需要调用一次
if (n := len(a)) > 10:
|= 表示异或,即相同为F,不同为T
r s r|=s
--------------
T T T
T F T
F T T
F F F