gpt4 book ai didi

java - 1 位和 2 位字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:37 25 4
gpt4 key购买 nike

我们有两个特殊字符。第一个字符可以用一位0表示。第二个字符可以用两位(10或11)表示。

现在给定一个由几位表示的字符串。返回最后一个字符是否必须是一位字符。给定的字符串将始终以零结尾。

示例 1:输入:位 = [1, 0, 0]输出:真

输入:位 = [1, 1, 1, 0]输出:错误

class Solution {
public boolean isOneBitCharacter(int[] bits) {
int n = bits.length-1;
int count = 0;
for(int i=n;i<=n;i--){
if(bits[i]==1){
count++;
}else break;

}return count%2==0;
}
}

此代码不适用于某些测试用例我的第二个示例测试用例不工作

最佳答案

试试这个:

public boolean isOneBitCharacter(int[] bits) {
int n = bits.length - 1;
int count = 0;
while (count < n) {
count += bits[count] + 1;
}
return count == n;
}

解释:

你从左到右开始读,如果遇到bits[i] == 0,说明下一个字符会有1位。如果 bits[i] == 1 这意味着下一个字符将有 2 位。您不断将 count 递增到每个下一个字符的开头。最后,如果count等于n,则表示最后一个字符为1位。

关于java - 1 位和 2 位字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58196567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com