当前位置: 首页 > news >正文

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

题目:

题解:

class Solution {static final int MASK1 = 1 << 7;static final int MASK2 = (1 << 7) + (1 << 6);public boolean validUtf8(int[] data) {int m = data.length;int index = 0;while (index < m) {int num = data[index];int n = getBytes(num);if (n < 0 || index + n > m) {return false;}for (int i = 1; i < n; i++) {if (!isValid(data[index + i])) {return false;}}index += n;}return true;}public int getBytes(int num) {if ((num & MASK1) == 0) {return 1;}int n = 0;int mask = MASK1;while ((num & mask) != 0) {n++;if (n > 4) {return -1;}mask >>= 1;}return n >= 2 ? n : -1;}public boolean isValid(int num) {return (num & MASK2) == MASK1;}
}

http://www.mrgr.cn/news/19250.html

相关文章:

  • 9 自研rgbd相机基于rk3566之qt框架开发rgbd融合线程
  • pytorch pyro更高阶的优化器会使用更高阶的导数,比如二阶导数(Hessian矩阵)
  • 【嵌入式撸码】内存相关的大小尽量偶数对齐
  • J.U.C Review - 阻塞队列原理/源码分析
  • https和harbor仓库跟k8s
  • Steam游戏截图方法
  • 如何判断字符串是否对称?
  • C语言 | Leetcode C语言题解之第394题字符串解码
  • Java中调用第三方接口
  • 语言桥梁:探索全球最受欢迎的翻译工具,让理解更简单
  • 3DMAX建筑魔术师MagicBuilding插件使用方法详解
  • jQuery基础——高级技巧
  • 软件测试方法之等价类测试
  • 【LVI-SAM】激光点云如何辅助视觉特征深度提取
  • 输入输出系统和中断总结
  • VUE3项目的几种创建方式
  • OpenCV从入门到精通——角点特征点提取匹配算法实战
  • ubuntu24和win11双系统,每次启动后Windows时间不正确的处理办法
  • TCP协议相关特性
  • Java并发编程之ThreadLocal深度探索