mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-04 16:12:47 +08:00
27 lines
492 B
Go
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
|
|
}
|