File tree 1 file changed +31
-0
lines changed
1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public boolean validUtf8 (int [] data ) {
3
+ int numberOfBytes = 0 ;
4
+ for (int i = 0 ; i < data .length ; i ++) {
5
+ String binaryRep = Integer .toBinaryString (data [i ]);
6
+ binaryRep = binaryRep .length () >= 8 ?
7
+ binaryRep .substring (binaryRep .length () - 8 ) :
8
+ "00000000" .substring (binaryRep .length () % 8 ) + binaryRep ;
9
+ if (numberOfBytes == 0 ) {
10
+ for (int j = 0 ; j < binaryRep .length (); j ++) {
11
+ if (binaryRep .charAt (j ) == '0' ) {
12
+ break ;
13
+ }
14
+ numberOfBytes ++;
15
+ }
16
+ if (numberOfBytes == 0 ) {
17
+ continue ;
18
+ }
19
+ if (numberOfBytes > 4 || numberOfBytes == 1 ) {
20
+ return false ;
21
+ }
22
+ } else {
23
+ if (!(binaryRep .charAt (0 ) == '1' && binaryRep .charAt (1 ) == '0' )) {
24
+ return false ;
25
+ }
26
+ }
27
+ numberOfBytes --;
28
+ }
29
+ return numberOfBytes == 0 ;
30
+ }
31
+ }
You can’t perform that action at this time.
0 commit comments