12 2020 档案
摘要:题目描述 给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。所谓回文串,指左右对称的字符串。 解题思路 当字符串不为空时,回文子串最少也是一个字符,即初始长度为1,当回文子串更长时,就可能有两种情况:例如“...aa...”或“...aba...”,即长度+1或+2。以后遍历时每增加一个字符
阅读全文
摘要:题目描述 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1。 解题代码 bit_num = 0b101110 k = 0 while bit_num != 0: bit_num &= (bit_num << 1) k += 1 print(k) #
阅读全文
摘要:题目描述 有一个集合S,要求打印出其所有子集,子集元素用逗号隔开,其中集合S本身和空集NULL都认为是集合S的子集。例如,有一个集合S,它的内容为“S={"A", "B", "C"}”,那么该集合S的所有子集为“A,B,C”、“A,B”、“AC”、“BC”、“A”、“B”、“C”、“NULL”。 解
阅读全文
摘要:题目描述 对于64位或32位的无符号整数x,我们在它的二进制表示中,把1的个数称为x的权重。例如x=7,它的二进制表示为0b111,由于有3个1,所以x的权重就是3。用S(k)表示64位或32位整数中,权重为k的所有整数的集合,其中k不等于0、32、64。现给定一个整数x,假定它属于集合S(k),要
阅读全文
摘要:1. 变量值互换 **题目描述:**在不使用第三个变量的前提下使用二进制的方式互换两个整型变量的值。 解题代码: >>> a = 1234 >>> b = 5678 >>> a = a ^ b >>> b = a ^ b >>> a = a ^ b >>> print(a, b) 5678 1234
阅读全文