一、前言
二、题717 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
or11
).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加一,遇1加二,若数组以0结尾,则i=n-1;若以10结尾,则i=n。
1 class Solution { 2 public boolean isOneBitCharacter(int[] bits) { 3 4 //solution one 5 int n = bits.length, i = 0; 6 while(i < n - 1) { 7 if (bits[i] == 0) i++; 8 else i += 2; 9 } 10 return i == n - 1; 11 12 } 13 }