https://leetcode.com/problems/utf-8-validation/?tab=Description
上图这种为valid所有情况,判断是否valid
public class Solution {
public boolean validUtf8(int[] data) {
int cnt = 0;
for (int i = 0; i < data.length; i++) {
if (cnt == 0) {
cnt = count(data[i]);
if (cnt > 4 || cnt == 1) {
return false;
}
cnt = cnt == 0 ? 0 : cnt - 1;
} else {
if (count(data[i]) == 1) {
cnt--;
} else {
return false;
}
}
}
return cnt == 0;
}
private int count(int num) {
int res = 0;
for (int i = 7; i >= 0 && (num & (1 << i)) != 0; i--) {
res++;
}
return res;
}
}
转载请注明原文地址: https://ju.6miu.com/read-2757.html