【Python】【难度:简单】Leetcode 717. 1比特与2比特字符【完】

有两种特殊字符。第一种字符可以用一比特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.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/1-bit-and-2-bit-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路1

截止到最后一位之前进行遍历,如果遇到0每次+1,如果遇到1每次+2,如果最后一位是单比特,i应该落在最后一位的索引上,如果不是则非单比特

class Solution(object):
    def isOneBitCharacter(self, bits):
        """
        :type bits: List[int]
        :rtype: bool
        """
        if len(bits)==1:
            return True
        
        i=0
        while i<len(bits)-1:
            if bits[i]==1:
                i+=1
            i+=1
        
        if i==len(bits)-1:
            return True
        return False

执行结果:

通过

显示详情

执行用时:48 ms, 在所有 Python 提交中击败了30.77%的用户

内存消耗:12.8 MB, 在所有 Python 提交中击败了100.00%的用户

 

思路2

最后1位是否能构成一比特主要是根据最后一位0之前的连续1的个数决定,当连续1的个数为偶数时,可以构成1比特位,为奇数时,不能构成1比特位

class Solution(object):
    def isOneBitCharacter(self, bits):
        """
        :type bits: List[int]
        :rtype: bool
        """
        if len(bits)==1:
            return True
        
        cnt=0
        for i in bits[-2::-1]:
            if i==1:
                cnt+=1
            else:
                break
        
        if cnt%2:
            return False
        else:
            return True

执行结果:

通过

显示详情

执行用时:36 ms, 在所有 Python 提交中击败了93.71%的用户

内存消耗:12.7 MB, 在所有 Python 提交中击败了100.00%的用户

Probability and Statistics - 4th edition 立即下载

相关推荐

FCN---训练cityspaces

未经允许,不要随意转载! 最近想试试用FCN训练自己的数据集,想想标注是一件很费劲的事,于是就想到了用其他库里的数据,这里选用了cityspaces,默认已经配置好FCN. 1、下载cityspaces https://www.cityscapes-dataset.com/ 需要注册一个账号 cityspaces包含2...

wangyu088的专栏 2031

leetcode 717. 1-bit and 2-bit Characters(python)

描述 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 char

王大呀呀的博客 307

[渗透测试实战篇-4] RCE漏洞组合拳突破Getshell全解析

本文深入解析RCE漏洞组合拳在渗透测试中的实战应用,通过SSRF、XXE等漏洞串联技术突破Getshell的全过程。文章详细介绍了Java和PHP环境下的漏洞利用差异,以及防御绕过与权限维持的实用技巧,为安全研究人员提供全面的实战指导。

weixin_29211309的博客 350

16位浮点转32位浮点

在DX中有着半精度浮点转单精度浮点的详细函数,我们先来了解一下数据的存储结构。 type Bits1 is mod 2**1; type Bits4 is mod 2**4; type Bits5 is mod 2**5; type Bits7 is mod 2**7; type Bits8 is mod 2**8; type Bits10 i...

adacore的博客 5642

从零构建XVC协议栈:FPGA+W5300的跨界调试架构实战

本文详细介绍了如何从零构建XVC协议栈,通过FPGA与W5300以太网控制器的创新组合实现跨界调试架构。重点解析了JTAG时序逆向、TCP/IP协议栈集成与XVC协议实现,提供了硬件设计优化和性能加速技术,为嵌入式开发者和FPGA工程师提供实用的远程调试解决方案。

raspberrypi5的博客 247

YOLOv8 改进涨点 | 模块即插即用 直接可用

在目标检测任务中,注意力机制能够帮助模型聚焦于图像中的关键区域,显著提升检测精度。。创建模块代码注册模块修改任务解析tasks.py创建YAML配置文件模块核心优势适用场景计算开销SOCA捕获二阶统计信息,增强通道间相关性需要精细特征区分的场景中等SK自适应多尺度核选择多尺度目标检测中等偏高显式特征聚集-分配机制全局上下文建模中等A2-Net双线性注意力,高效全局交互复杂场景理解中等偏高CrissCross线性复杂度全局上下文高分辨率输入,长距离依赖较低。

u012133341的博客 2257

leetcode 717. 1比特与2比特字符(python)

有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。 现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。 示例 1: 输入: bits = [1, 0, 0] 输出: True 解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。 示例 2: 输入: ...

汤庆 757

自动驾驶---Planning模块详细介绍(以Apollo为例)

主要介绍高速场景下Planning模块,至于低速的泊车场景对比高速场景或者城区场景有比较大的差距(后面也会介绍泊车场景),本篇Planning介绍主要包括三大子模块Routing,Behavioural Planning以及Motion Planining,并且对比较重要的Decider和Optimizer都做了通俗化的说明供大家思考,以便于后续理解更深入的内容,后面有时间会再开一些篇幅对这些模块进行更加深入的讲解。

智能汽车人的博客 2086

LeetCode717. 1比特与2比特字符(python3)

文章目录717. 1比特与2比特字符法1:设置标志位,遍历数组。遇1索引加2,遇0索引加1优化优化:法3:贪心,最后一位一定要为0,不然一定不会满足; 717. 1比特与2比特字符 法1:设置标志位,遍历数组。遇1索引加2,遇0索引加1 class Solution: def isOneBitCharacter(self, bits: List[int]) -> bool: index = 0 while index<len(bits):

qq_43710889的博客 354

风控域——决策引擎系统设计

本文详细介绍了风控决策引擎系统的设计与应用。决策引擎系统是一种智能化工具,可自动化、数据驱动地辅助或替代人工决策,广泛应用于金融、医疗、营销、风控等领域。文章阐述了决策引擎的核心功能,包括自动化决策、动态规则管理、实时处理和模型集成,以及系统组成,涵盖数据输入层、规则引擎和模型服务层。此外,还探讨了决策引擎的典型应用场景、技术架构、组件设计,以及风控决策引擎系统的技术方案、设计难点和重点。

庄小焱 3318

17|CI/CD 集成与质量门禁:让精准测试进入发布流水线

本文讲解精准测试如何接入 CI/CD 流水线,并通过质量门禁辅助发布决策。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 65

717. 1比特与2比特字符

有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。 现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。 示例 1: 输入: bits = [1, 0, 0] 输出: True 解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。 示例 2: 输入: ...

码奴生来就只知道前进 644

【DDR5 PCB走线SI/PI仿真调试】详细全攻略

问题场景发现症状优化措施过孔Stub效应TDR波形尖峰,信号反射严重使用盲孔,背钻减少Stub,降低Via数量串扰过大眼图闭合,误码率增加增加走线间距,插入地线隔离,减少平行长度电源阻抗过高PDN谐振导致纹波大多频率去耦,靠近电源引脚布置多档电容,合理分层信号时序失配优化走线长度匹配,避免信号走线跨层跳变DDR5设计不仅是硬件的挑战,更是仿真能力的考验。掌握SI/PI仿真,理解信号背后的物理本质,才能真正把握高速接口的“灵魂”!

weixin_43199439的博客 987

2025-11-18-LeetCode刷题笔记-717-1比特与2比特字符

题目要求判断给定的0/1数组最后一个0是否独立为1比特字符。通过贪心算法从左到右扫描数组,当遇到1时跳过2位,0时跳过1位,最终检查是否落在最后一位即可。时间复杂度O(n),空间复杂度O(1)。另可通过统计末尾连续1的奇偶性快速判断。测试用例验证了算法的正确性,保证最后一位为0简化了边界处理。

ttkqwe的博客 282

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

c++如何判断是否是可见字符_LeetCode基础算法题第101篇:判断末尾字符是否是1比特字符...

技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完。目前我选择C语言,Python和Java作为实现语言,因为这三种语言还是比较典型的。由于篇幅和精力有限,其他语言的实现有兴趣的朋友请自己尝试。初级难度说的差不多的时候,我打算再加点其他内容,我可能会从操作系统到协议栈,从分布式聊到大数据框架,从大数据聊到人工智能,....

weixin_34740753的博客 875

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Python】【难度:简单】Leetcode 1002. 查找常用字符【完】

给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。 你可以按任意顺序返回答案。 示例 1: 输入:["bella","label","roller"] 输出:["e","l","l"] 示例 2: 输入:["cool","lock...

thomashhs12的博客 240

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

力扣(LeetCode)刷题,简单难度,第2题,整数反转(python)

2020年9月10日 ☀ 今天是刷力扣的第1天。 希望通过刷力扣学点python编程思想和知识。不是最合适的答案,但是是自己想出的解决思路。如有更好的建议,欢迎指正~ 第2题:整数反转 难度:简单 题目要求: 答案 (python): class Solution: def reverse(self, x:int) -> int: l_str = str(x) a = int(math.pow(2,31) - 1) b = int(- m

weixin_42866036的博客 484

【leetcode】python算法题库——简单难度【1】

编程基础知识 算法复杂度 编写程序需要注重算法复杂度,刷题时也存在多解,如何找到最优解成为一个需要重点关注的方向。 算法复杂度:是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。应用于数学和计算机导论。同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考...

天真不无邪,hello和world 3613

【PythonCode】力扣Leetcode6~10题Python版

Leetcode6-10

weixin_43790276的博客 1859

力扣(LeetCode)刷题,简单难度,第3题,回文数(python)

2020年9月11日 ☀ 今天是刷力扣的第2天。 希望通过刷力扣学点python编程思想和知识。不是最合适的答案,但是是自己想出的解决思路。如有更好的建议,欢迎指正~ 第3题:回文数 难度:简单 题目要求: 答案 (python): class Solution: def isPalindrome(self, x:int) -> bool: y = str(x) z = y[::-1] if y == z: ret

weixin_42866036的博客 542

leetcode 1-100 easy难度题目汇总

主要是考虑到easy题目没什么好分析的, 故统一总结在一篇文章里. 留作记录. 收录leetcode1文章目录1. Two Sum (Easy)7. Reverse Integer (Easy)9. Palindrome Number (Easy)13. Roman to Integer (Easy)14. Longest Common Prefix (Easy)20. Valid Parenth...

Bean771606540的博客 1516

【Python】【难度:简单】Leetcode 5396. 连续字符

给你一个字符串s,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。 请你返回字符串的能量。 示例 1: 输入:s = "leetcode" 输出:2 解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。 示例 2: 输入:s = "abbcccddddeeeeedcba" 输出:5 解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。 示例 3: 输入:s = "triplepillooooow" 输出:5 示例 4: 输入:s = "hoor...

thomashhs12的博客 499

【Python】【难度:简单】Leetcode 830. 较大分组的位置【完】

在一个由小写字母构成的字符串S中,包含由一些连续的相同字符所构成的分组。 例如,在字符串 S = "abbxxxxzyy"中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。 我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。 最终结果按照字典顺序输出。 示例1: 输入: "abbxxxxzzy" 输出: [[3,6]] 解释: "xxxx" 是一个起始于 3 且终止于 6 的较大分组。 示例 2: 输入: "a...

thomashhs12的博客 228

【Python】【难度:简单】Leetcode 942. 增减字符串匹配

给定只含"I"(增大)或 "D"(减小)的字符串S,令N = S.length。 返回[0, 1, ..., N]的任意排列A使得对于所有i = 0,..., N-1,都有: 如果S[i] == "I",那么A[i] < A[i+1] 如果S[i] == "D",那么A[i] > A[i+1] 示例 1: 输出:"IDID" 输出:[0,4,1,...

thomashhs12的博客 185

【Python】【难度:简单】Leetcode 面试题15. 二进制中1的个数【完】

请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 '1'。 示例 2: 输入:000...

thomashhs12的博客 199

力扣LeetCode:Python3代码解析 — 9.回文数

力扣LeetCode:Python3代码解析 — 9.回文数回文数解法一:字符串颠倒解法二:整数取反结果对比 回文数 难度:简单 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文

Senimo 652
上一篇: 【Python】【难度:简单】Leetcode 1. 两数之和【完】
下一篇: 【Python】【难度:简单】Leetcode 88. 合并两个有序数组【完】
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值