Python | Leetcode Python题解之第393题UTF-8编码验证

打印 上一主题 下一主题

主题 973|帖子 973|积分 2919

题目:

题解:
  1. class Solution:
  2.     def validUtf8(self, data: List[int]) -> bool:
  3.         MASK1, MASK2 = 1 << 7, (1 << 7) | (1 << 6)
  4.         def getBytes(num: int) -> int:
  5.             if (num & MASK1) == 0:
  6.                 return 1
  7.             n, mask = 0, MASK1
  8.             while num & mask:
  9.                 n += 1
  10.                 if n > 4:
  11.                     return -1
  12.                 mask >>= 1
  13.             return n if n >= 2 else -1
  14.         index, m = 0, len(data)
  15.         while index < m:
  16.             n = getBytes(data[index])
  17.             if n < 0 or index + n > m or any((ch & MASK2) != MASK1 for ch in data[index + 1: index + n]):
  18.                 return False
  19.             index += n
  20.         return True
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表