Skip to content

Commit b7aa3d6

Browse files
authored
Create UTF-8 Validation.java
1 parent d1c7683 commit b7aa3d6

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Medium/UTF-8 Validation.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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+
}

0 commit comments

Comments
 (0)