海象运算符应用 - 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

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