Files
LeetCode-Go/leetcode/0393.UTF-8-Validation/393. UTF-8 Validation.go
2020-08-07 17:06:53 +08:00

27 lines
492 B
Go

package leetcode
func validUtf8(data []int) bool {
count := 0
for _, d := range data {
if count == 0 {
if d >= 248 { // 11111000 = 248
return false
} else if d >= 240 { // 11110000 = 240
count = 3
} else if d >= 224 { // 11100000 = 224
count = 2
} else if d >= 192 { // 11000000 = 192
count = 1
} else if d > 127 { // 01111111 = 127
return false
}
} else {
if d <= 127 || d >= 192 {
return false
}
count--
}
}
return count == 0
}