[LeetCode] 1-bit and 2-bit Characters
Posted immjc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 1-bit and 2-bit Characters相关的知识,希望对你有一定的参考价值。
We have two special characters. The first character can be represented by one bit 0
. The second character can be represented by two bits (10
or 11
).
Now given a string represented by several bits. Return whether the last character must be a one-bit character or not. The given string will always end with a zero.
Example 1:
Input: bits = [1, 0, 0] Output: True Explanation: The only way to decode it is two-bit character and one-bit character. So the last character is one-bit character.
Example 2:
Input: bits = [1, 1, 1, 0] Output: False Explanation: The only way to decode it is two-bit character and two-bit character. So the last character is NOT one-bit character.
Note:
1 <= len(bits) <= 1000
.bits[i]
is always0
or1
.
我们有两个特殊字符。第一个字符可以由一个位0表示。第二个字符可以由两个位(10或11)表示。
现在给出一个由几位表示的字符串。返回最后一个字符是否必须是一位字符。给定的字符串将始终以零结尾。
思路:使用蛮力判断每一个特殊字符的,如果是两个10、11,则第一位一定是1,让bit数组跳过一个字符即i=i+2
如果是一个字符0,则让bit数组继续遍历0后的下一个字符。直到判断到倒数第二个数字为止,如果这个数字是1,则返回false,如果这个数字是0,则返回true。
class Solution { public: bool isOneBitCharacter(vector<int>& bits) { int n = bits.size(), flag = true; for (int i = 0; i != n;) { if (bits[i] == 1) { if (i == n - 2) { flag = false; break; } else i = i + 2; } else { if (i == n - 2) { flag = true; break; } else i = i + 1; } } return flag; } }; // 3 ms
以上是关于[LeetCode] 1-bit and 2-bit Characters的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 717: 1-bit and 2-bit Characters
LeetCode 717. 1-bit and 2-bit Characters
leetcode-717-1-bit and 2-bit Characters
LeetCode #717. 1-bit and 2-bit Characters