zoukankan      html  css  js  c++  java
  • [leetcode]UTF-8 Validation

    位运算

    class Solution:
        def validUtf8(self, data: List[int]) -> bool:
            multiByteCount = 0
            for byte in data:
                if multiByteCount > 0: # in multi-byte
                    # start with 10
                    if byte & 0x80 == 0x80 and byte | 0xbf == 0xbf:
                        multiByteCount -= 1
                    else:
                        return False
                elif byte & 0x80 == 0x80: # start with 1, maybe multi-byte
                    multiByteCount = 0
                    mask = 0x80 >> 1
                    while mask > 0 and byte & mask == mask:
                        mask = mask >> 1
                        multiByteCount += 1
                    if multiByteCount > 3 or multiByteCount == 0:
                        return False
                else: # start with 0
                    continue
            
            if multiByteCount > 0:
                return False
            
            return True
    

      

  • 相关阅读:
    实验6:Mapreduce实例——WordCount
    暑期生活10
    暑期生活9
    暑期生活8
    暑期生活7
    暑期生活6
    暑期生活5
    暑期生活4
    暑期生活3
    暑期生活2
  • 原文地址:https://www.cnblogs.com/lautsie/p/12283146.html
Copyright © 2011-2022 走看看