海象運算符應用 - Python3.8

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章