可被 5 整除的二进制前缀

给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。

返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。

示例 1:

输入:[0,1,1]
输出:[true,false,false]
解释:
输入数字为 0, 01, 011;也就是十进制中的 0, 1, 3 。只有第一个数可以被 5 整除,因此 answer[0] 为真。
示例 2:

输入:[1,1,1]
输出:[false,false,false]
示例 3:

输入:[0,1,1,1,1,1]
输出:[true,false,false,false,true,false]
示例 4:

输入:[1,1,1,0,1]
输出:[false,false,false,false,false]

参考代码:

class Solution:

def prefixesDivBy5(self, A):

list1 = []

list2 = []

Aq = "".join(‘%s‘ % A[t] for t in range(len(A))) # 将A转换成str

for i in range(1, len(Aq) + 1):

list1.append(int(Aq[0:i], 2)) # 遍历A将其前一个前两个等转换成int

for b in list1:

if b % 5 == 0:

list2.append(True)

else:

list2.append(False)

return list2

原文地址:https://www.cnblogs.com/HackerEarl/p/12311079.html

时间: 2024-10-25 05:53:25

可被 5 整除的二进制前缀的相关文章

Leetcode 1029. 可被 5 整除的二进制前缀

1029. 可被 5 整除的二进制前缀 显示英文描述 我的提交返回竞赛 用户通过次数467 用户尝试次数662 通过次数477 提交次数1964 题目难度Easy 给定由若干 0 和 1 组成的数组 A.我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位). 返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false. 示例 1: 输入:[0,1,1] 输出:[true,

1018.可被 5 整除的二进制前缀

能不能被5整除都看 看输入数字的最后一位是否为 0或者5 也就是最后一位是否能被整除 这道题很容易就溢出 所以我们仅包括最后几位即可 class Solution { public List<Boolean> prefixesDivBy5(int[] A) { List<Boolean> ans = new ArrayList<Boolean>(); int temp = 0 ; for(int i = 0 ; i < A.length ;i++) { temp

Leetcode-1029 Binary Prefix Divisible By 5(可被 5 整除的二进制前缀)

1 class Solution 2 { 3 public: 4 vector<bool> prefixesDivBy5(vector<int>& A) 5 { 6 vector<bool> v(A.size()); 7 int rnt = 0; 8 for(int i = 0; i< A.size();i ++) 9 { 10 if(A[i]==1) 11 { 12 if(rnt==0) 13 {rnt = 1;v[i] = false;} 14 els

POJ3061 Subsequence(二进制前缀和法律+仿真足)

二分法+前缀和法律 满足子序列长度的条件(0,n)之间,sum[x+i]-sum[i]从i元素开始序列长度x和.前缀和可在O(n)的时间内统计 sum[i]的值.再用二分找出满足条件的最小的子序列长度. #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<queue> #include&

leet

# 题名1 两数之和    2 两数相加    3 无重复字符的最长子串    4 寻找两个有序数组的中位数    5 最长回文子串    6 Z 字形变换    7 整数反转    8 字符串转换整数 (atoi)    9 回文数    10 正则表达式匹配    11 盛最多水的容器    12 整数转罗马数字    13 罗马数字转整数    14 最长公共前缀    15 三数之和    16 最接近的三数之和    17 电话号码的字母组合    18 四数之和    19 删除链表

Erlang 位串和二进制数据

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=25876834&id=3300393 因为在本人工作中,服务端Erlang和客户端的flash通信都是发送二进制数据(协议)来通信,Erlang处理起来二进制数据真的很方便,在空余时间查看和翻译了Erlang的二进制相关一些说明文档,当然里面也有根据自己的经验和知识理解的地方. 在二进制解析部分,其实还有很多好的例子.还有就是Erlang的二进制实际应用的例子,下次会再分享的,

从FSM到正则表达式

本文以一个有限状态自动机(FSM)为例来介绍几种从有限状态自动机转化为正则表达式的方法. 有一个FSM能接受能被3整除的二进制串(如字符串0,其十进制为0(考虑其到初始状态,认为读到0,亦为可接受状态):字符串11,其十进制为3:字符串110,其十进制为6:......这些都可接受).这个有限自动机的图形表示如图1所示: 下面讲叙将图1所表示的FSM转化为正则表达式. 第一种方法,从实质出发: 其实质为:从A状态出发经过若干次(包括0次)转移(途径),最终恰好回到状态A.所谓求正则表达式,即对这

base64编码以及url safe base64是怎么工作的?

原文转自 http://www.yanshiba.com/archives/638 1: 为什么需要base64? ASCII码一共规定了128个字符的编码,这128个符号,范围在[0,127]之间.其中,[0,31],及127, 33个属于不可打印的控制字符. 在电子邮件传输信息时,有些邮件网关会把[0,31]这些控制字符给悄悄清除.还有的早期程序,收到[128,255]之间的国际字符时,甚至会发生错误. 如何在不同邮件网关之间安全的传输控制字符,国际字符,甚至二进制文件?于是作为MIME多媒

Java基础整理(1)

1.源代码的文件名必须与公共类(public)的类名一致,而且一个源代码文件中最多只能有一个公共类(public) 2.注释: 3种 行注释  以双斜线  //  开始 段落注释  /*  注释内容  */ 文档注释  /**  注释内容 */ 3.数据类型  8种基本类型 整型 4 种 :  byte(1byte). short(2 bytes). int (4 bytes). long(8 bytes)     均为signed(有符号型) 浮点型 2 种:float(4 bytes).do