题目描述:

有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。

现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。

示例 1:

输入:
bits = [1, 0, 0]
输出: True
解释:
唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。

示例 2:

输入:
bits = [1, 1, 1, 0]
输出: False
解释:
唯一的编码方式是两比特字符和两比特字符。所以最后一个字符不是一比特字符。

注意:

  • 1 <= len(bits) <= 1000.
  • bits[i] 总是0 或 1.

解题思路:

这个题目一开始我的思路是只看最后4个数,然后一共8种情况分情况讨论,后来发现有些情况的答案是不确定的,需要看更多的数才能决定,后来上网看了一下别人的思路觉得很好,思路如下:

由于10, 11两个编码都是以1开头的,这意味着只要是以1开头的后面一个数必定是根这个1一起的字符编码。利用这一点:

用一个指针从前向后走,遇到1就走两步,遇到0就走一步,看最后是不是走到n-1的位置,说明最后的0只能是单独存在的,否则走到n的位置就说明这个0是跟前面的1一起的。

代码实现(Java语言):

class Solution {public boolean isOneBitCharacter(int[] bits) {int i = 0;for(i = 0;i < bits.length - 1;){if(bits[i] == 0){i++;}elsei += 2;}System.out.println(i);return (i == bits.length-1)?true:false;}
}

[Leetcode] 717. 1比特与2比特字符相关推荐

  1. 「 每日一练,快乐水题 」717. 1比特与2比特字符

    ✅力扣原题: 力扣链接:717. 1比特与2比特字符 ✅题目简述: 有两种特殊字符: 第一种字符可以用一个比特 0 来表示 第二种字符可以用两个比特(10 或 11)来表示. 给定一个以 0 结尾的二 ...

  2. 717. 1比特与2比特字符

    链接:717. 1比特与2比特字符 题解: class Solution { public:bool isOneBitCharacter(vector<int>& bits) {i ...

  3. 【leetcode24-----1比特与2比特字符】

    1比特与2比特字符 有两种特殊字符: 第一种字符可以用一比特 0 表示 第二种字符可以用两比特(10 或 11)表示 给你一个以 0 结尾的二进制数组 bits ,如果最后一个字符必须是一个一比特字符 ...

  4. 【每日一算法】1比特与2比特字符

    微信改版,加星标不迷路! 每日一算法-1比特与2比特字符 有两种特殊字符.第一种字符可以用一比特0来表示.第二种字符可以用两比特(10 或 11)来表示. 现给一个由若干比特组成的字符串.问最后一个字 ...

  5. 刷爆力扣之1 比特与 2 比特字符

    刷爆力扣之1 比特与 2 比特字符 HELLO,各位看官大大好,我是阿呆

  6. 【LeetCode717】1比特与2比特字符

    1比特与2比特字符 有两种特殊字符.第一种字符可以用一比特0来表示.第二种字符可以用两比特(10 或 11)来表示.现给一个由若干比特组成的字符串.问最后一个字符是否必定为一个一比特字符.给定的字符串 ...

  7. LeetCode 158. 用 Read4 读取 N 个字符 II

    文章目录 1. 题目 2. 解题 1. 题目 给你一个文件,并且该文件只能通过给定的 read4 方法来读取,请实现一个方法使其能够读取 n 个字符. 注意:你的 read 方法可能会被调用多次. r ...

  8. LeetCode 157. 用 Read4 读取 N 个字符

    文章目录 1. 题目 2. 解题 1. 题目 给你一个文件,并且该文件只能通过给定的 read4 方法来读取,请实现一个方法使其能够读取 n 个字符. read4 方法: API read4 可以从文 ...

  9. 比特交织 matlab,比特交织空时编码不对称调制方案及软件分析

    空時编码作为一种联合考虑发射分集.编码和调制的信道编码技术,由于其优良的性能,近年来很多学者将比特交织编码调制(BICM)与空时分集技术相结合,提出了比特交织空时编码调制(BI-STCM)[1-4], ...

  10. LeetCode 每日一题 3. 无重复字符的最长子串

    LeetCode 每日一题 3. 无重复字符的最长子串   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创 ...

最新文章

  1. JQuery控制图片无缝滚动
  2. KITTI IMU 原始100Hz数据 (里面数据有重复)
  3. 如何最小化混合云中影子IT带来的风险
  4. USACO Section1.2 Your Ride Is Here(水题)
  5. [Unity] TortoiseSVN 的 CheckOut 未响应的解决记录
  6. linux 数据库 超出,[QAD]数据库超过2G,备份出现问题(linux)
  7. mysql 创建用户并授权_教你MySQL-8.0.x数据库授权
  8. java guava map_Guava - Map
  9. linux检查编译windows,用C,C检测Windows或Linux
  10. EpsonL360清零软件+清零方法
  11. python set函数排序_python set集合排序_Python Set集合
  12. 实战解决小程序图片加载问题
  13. php面向对象常见的专业术语
  14. B. Alice and the List of Presents(组合数学)
  15. node.js之async的使用(series,whilst)
  16. 从果粉到黑吃黑:一个论坛挂马的奇异反转
  17. 王者荣耀在android目录下的名字,王者荣耀名字空白代码怎么弄_名字空白代码设置方法...
  18. 实战为上!深入解析20个运维命令
  19. 想跳槽涨薪的必看,Java就业指导(1)
  20. 仪表盘故障图像识别_仪表自动识别方法汇总

热门文章

  1. python数列求和_Python 数字求和
  2. H3C无线AP 瘦模式转胖模式 fit转fat
  3. 基于物联网的无线温度系统在钢铁行业的应用
  4. win10无法使用内置管理员账户打开
  5. 关于LYNC同步通讯录参数修改
  6. 基于STM32HAL库ADS1256调试笔记
  7. 虾米音乐的一个小功能
  8. java中finish什么意思,finish是什么意思(你知道Finish 和 Complete 的区别吗?)
  9. 多少个程序员能出一个架构师_每个程序员或架构师都应该知道的9 + 7件事
  10. ForkJoinPool入门篇