393. UTF-8 Validation
来源:互联网 发布:手机翻页电子书软件 编辑:程序博客网 时间:2024/05/17 18:00
思路:遍历一遍vector,按要求判断;
C++代码:
class Solution {public: int num_of_bytes(int a) { int i = 0; while (a & (1<<(7-i))) { if (i > 4) return i; i++; } return i; } bool test_01(int num) { return (((num& (1<<7))==(1<<7))&&((num&(1<<6) )== 0)); } bool validUtf8(vector<int>& data) { int size = data.size(); if (size == 0) { return false; } for (int i=0; i<size;) { //cout<<"i="<<i<<endl; int num = num_of_bytes(data[i]); if (num > 4) return false; switch (num) { case (0): i++; continue; case (1):return false; case (2): if (size >=2 && test_01(data[i+1])) { i+=2; continue; } else { return false; } case (3): if (size>=3 && test_01(data[i+1])&& test_01(data[i+2])) { i += 3; continue; } else { return false; } case (4): if (size>=4 && test_01(data[i+1])&& test_01(data[i+2]) &&test_01(data[i+3])) { i += 4; continue; } else { return false; } } } return true; }};
其他解法:
class Solution {public: bool validUtf8(vector<int>& data) { int count = 0; for (auto c : data) { if (count == 0) { if ((c >> 5) == 0b110) count = 1; else if ((c >> 4) == 0b1110) count = 2; else if ((c >> 3) == 0b11110) count = 3; else if ((c >> 7)) return false; } else { if ((c >> 6) != 0b10) return false; count--; } } return count == 0; }};
阅读全文
0 0
- 393. UTF-8 Validation
- 393. UTF-8 Validation
- 393. UTF-8 Validation
- 393. UTF-8 Validation
- 393. UTF-8 Validation
- 393. UTF-8 Validation
- 393. UTF-8 Validation
- 393. UTF-8 Validation
- [LeetCode] 393. UTF-8 Validation
- [leetcode] 393. UTF-8 Validation
- 【leetcode】393. UTF-8 Validation
- [LeetCode]393. UTF-8 Validation
- Leetcode-393. UTF-8 Validation
- [leetcode]393. UTF-8 Validation
- LeetCode—393. UTF-8 Validation
- [leetcode] 393. UTF-8 Validation 解题报告
- 【leetcode】393. UTF-8 Validation【M】
- [Leetcode] 393. UTF-8 Validation 解题报告
- LeetCode #79
- 订餐系统总结
- HTTP Status 404错误分析及解决方法
- 9月 英语学习总结
- Qt学习: QListWidget的用法.
- 393. UTF-8 Validation
- 我的第一个JS程序——进击的马里奥
- 事件监听函数:addEventListener() removeEventListener()
- css 常见页面布局之圣杯布局(margin负值法)
- jsp字符编码过滤器的实现
- pygame.Color
- 树莓派编译内核(编译模块)
- CSS3盒子阴影属性
- LeetCode #84