Leetcode 393 Solution

This article provides solution to leetcode question 393 (utf-8-validation)

https://leetcode.com/problems/utf-8-validation

Solution

class Solution { public: bool validUtf8(vector<int>& data) { for (int i = 0; i < data.size(); i++) { if ((data[i] & 0b10000000) == 0) continue; else if ((data[i] & 0b11100000) == 0b11000000) { if (i + 1 >= data.size()) return false;
if ((data[i + 1] & 0b11000000) != 0b10000000) return false;
i++; } else if ((data[i] & 0b11110000) == 0b11100000) { if (i + 2 >= data.size()) return false;
if ((data[i + 1] & 0b11000000) != 0b10000000 || (data[i + 2] & 0b11000000) != 0b10000000) return false;
i += 2; } else if ((data[i] & 0b11111000) == 0b11110000) { if (i + 3 >= data.size()) return false;
if ((data[i + 1] & 0b11000000) != 0b10000000 || (data[i + 2] & 0b11000000) != 0b10000000 || (data[i + 3] & 0b11000000) != 0b10000000) return false;
i += 3; } else return false; }
return true; } };