UTF-8 Validation

来源:互联网 发布:电脑编程多久能学会 编辑:程序博客网 时间:2024/06/06 07:09

按照UTF-8的定义多做几次判断就行,我在判断首byte的时候11000000和00001100这两种情况不好判断,即1在中间的时候不好计数,还是答案简洁:

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
原创粉丝点击