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