leetcode717-1-bit and 2-bit Characters

2024-04-16 00:04
文章标签 bit characters leetcode717

本文主要是介绍leetcode717-1-bit and 2-bit Characters,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

有两种特殊字符:
第一种字符可以用一比特 0 表示
第二种字符可以用两比特(10 或 11)表示
给你一个以 0 结尾的二进制数组 bits ,如果最后一个字符必须是一个一比特字符,则返回 true 。
示例 1:
输入: bits = [1, 0, 0]
输出: true
解释: 唯一的解码方式是将其解析为一个两比特字符和一个一比特字符。
所以最后一个字符是一比特字符。

分析

遍历数组,如果当前元素是0则游标加1,如果当前元素是1则游标加2(因为无论是10还是11都是合法字符),一直到游标到达倒数第二个元素。最终只要判断游标和数组的长度减1是否一样就可以了,如果刚好一致则说明倒数第二个元素是0,且题目中说明最后一个元素一定是0;如果不一致则说明倒数第二个元素是1,那么它和最后一个元素一定是组成10的,这样的话最后一个字符就不是一比特字符了。

public class oneBitandTwoBitCharacters {public static void main(String[] args) {int[] arr = {1,0,0};System.out.println(get(arr));}public static boolean get(int[] arr) {int len = arr.length;int i = 0;while(i<len-1) {if(arr[i] == 0) {i++;} else {i+=2;}}return i == len-1;}
}

这篇关于leetcode717-1-bit and 2-bit Characters的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907296

相关文章

算法13—Bit Map算法简介

1. Bit Map算法简介          来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 2、 Bit Map的基本思想         我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排

3. Longest Substring Without Repeating Characters 无重复字符的最长子串

https://leetcode.com/problems/longest-substring-without-repeating-characters/description/ 题目大意:给一个字符串,要求出最长的不含重复字符子串(要求连续,不是子序列). 解题思路:不重复,利用哈希表.hash是以字符的ASC为下标的数组,对应存储该字符最后出现的位置. 设一个标记start,然后一次遍历

【GNU笔记】【C扩展系列】128位整数 128-bit Integers

【GNU笔记】【C扩展系列】128位整数 128-bit Integers 128位整数 128-bit Integers 作为扩展,整数标量类型__int128支持用于整数模式宽度足以容纳 128 位的目标。对于有符号的128位整数,只需写__int128;对于无符号的128位整数,只需写无符号unsigned __int128。对于宽度小于128位的long long整数的目标,GCC不支

mysql-5.7.12-winx64.zip Windows (x86, 64-bit), ZIP Archive版免安装配置,无法启动服务解决办法

按照上一篇转载的博文:  mysql-5.7.12-winx64.zip Windows (x86, 64-bit), ZIP Archive版免安装配置 安装配置mysql的时候,出现了一些问题,总是无法启动mysql服务,这才发现原来是因为自己使用的是5.7的版本,MySQL数据库在升级到5.7版本后,和之前的版本有些不一样,没有data文件夹,我们都知道MySQL数据库文件是保

mysql-5.7.12-winx64.zip Windows (x86, 64-bit), ZIP Archive版免安装配置

1、下载免安装版压缩包     下载地址:http://dev.mysql.com/downloads/mysql/ 选择符合你的操作系统的版本,点击download进入下载页面 不用注册也可以点击下载连接进行下载 2、安装 解压下载的压缩文件到你的mysql安装目录(目录能不能有中文没测试过,你可以试一下),以下是我的解压目录   复制解压目录D:

C程序调用matlab (Win8 64 bit + VS 2013 + Matlab R2014a)

Visual Studio和MATLAB混合编程,有两种方法:  MATLAB调用C程序      用MATLAB的mex命令调用VS或其他编译器,将以一定方式编写出的C文件编译成.mexw32(针对win32)或者.mexw64(针对win64),然后MATLAB就可以用调用动态链接库的方式,调用C程序。这一过程中,只需要在安装好编译器的前提下,执行: mex -setup

347_C++_BOOST_AUTO应用于:查找JSON字段、查找map容器中的key、推导list容器进行bit置位

BOOST_AUTO通常用于自动类型推导,尤其在模板编程中,与 C++11 及以后版本的 auto 关键字类似 1、----BOOST_AUTO推导查找JSON字段 -----迭代器array-----BOOST_AUTO(eventParm, revdoc.FindMember("eventTypes"));hl::json

Characters 5 02

● 包裹● 13名男性; 12个女孩。 ● 使用地点 ● - 游戏。针对游戏引擎优化的模型; -乘法; 广告和营销; - 虚拟现实/增强现实。 ● 特点 ● -Unity模型具有人形骨架; - Fbx模型支持“Mixamo”的骨架类型; - 你可以很容易地改变物体的颜色 - 使用UV贴图; - 对象逻辑位置的枢轴; - 模型具有逻辑名称。 ● 操纵● Rig有63块骨头; ● 几何学● 25个独

Characters 2 01(卡通可爱人物动画模型)

● 包裹● - 26名男子; - 29个女孩。 ● 使用地点 ● - 游戏。针对游戏引擎优化的模型; -乘法; 广告和营销; - 虚拟现实/增强现实。 ● 特点 ● - 你可以很容易地改变物体的颜色 - 使用UV贴图; - 对象逻辑位置的枢轴; - 模型具有逻辑名称。 ● 几何学● 62个独特的资产(预制件); - 231k三角形全部打包; ● 人物 ● 常规(x18) Classy(x9) 运

二进制数据图片(bit-data-map): 一种通过图片的形式传递数据信息的方式

二进制数据图片 前言 最近公司那台终端电脑的粘贴功能坏了, 连接远程想从里面拿一个文件出来, 试了好多种方法不顶用, 远程终端开了一堆程序也不能随便重启远程终端, 最终是关了一大堆不必要的应用, 又重启了下rdpclip.exe解决了 Windows服务器远程桌面不能复制粘贴的解决方法 但是解决过程中, 突然想: 复制粘贴不能用, 但是可以正常显示远程的屏幕, 能不能通过截屏就能把文