目录
2. 快乐数 ※
3. 格雷编码 🌟🌟
1. 任意多行字符串拆分数值求和
编写程序,统计每行字符串中若干整数的和。
每行字符串中整数间的分隔符可能有逗号“,”、分号“ ;”和空格,有多少行就求多少行。
输入格式:
任意输入若干行由整数构成的字符串(回车换行),整数间以逗号或空格或分号分隔。测试数确保至少有一行数据,字符串中的整数数据均合法有效。最后以一个回车结束输入。
输出格式:
对应输出原输入串(一行中的字符序列),冒号后输出各个整数之和。
输入样例:
1; 2 ,3
2 3; 4
10,20 30; 40
输出样例:
1; 2 ,3:6
2 3; 4:9
10,20 30; 40:100
出处:
https://edu.csdn.net/practice/25116231
代码:
stopword = ''
s = ''
print('请输入内容,输入空行回车结束输入:')
for line in iter(input, stopword):
s = s + line + "\n"
print(s)
l = s.splitlines()
for num in range(0, len(l)):
one = l[num].replace(',', ' ').replace(';', ' ').split()
onesum = 0
for i in range(0, len(one)):
onesum = onesum + int(one[i])
print(l[num] + ":" + str(onesum))
输入输出:
请输入内容,输入空行回车结束输入:
1; 2 ,3↙
2 3; 4↙
10,20 30; 40↙
↙
1; 2 ,3
2 3; 4
10,20 30; 40
1; 2 ,3:6
2 3; 4:9
10,20 30; 40:100
2. 快乐数
编写一个算法来判断一个数 n
是不是快乐数。
「快乐数」定义为:
- 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
- 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
- 如果 可以变为 1,那么这个数就是快乐数。
如果 n
是快乐数就返回 true
;不是,则返回 false
。
示例 1:
输入:19 输出:true 解释: 1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 + 0^2 = 1
示例 2:
输入:n = 2 输出:false
提示:
1 <= n <= 2^31 - 1
出处:
https://edu.csdn.net/practice/25116232
代码:
pclass Solution(object):
def isHappy(self, n):
"""
:type n: int
:rtype: bool
"""
d = {}
while True:
l = list(map(int, list(str(n))))
m = 0
for i in l:
m += i ** 2
if m in d:
print(d)
return False
if m == 1:
print(d)
return True
d[m] = m
n = m
#%%
s = Solution()
print(s.isHappy(19))
print(s.isHappy(2))
ython
输出:
{82: 82, 68: 68, 100: 100}
True
{4: 4, 16: 16, 37: 37, 58: 58, 89: 89, 145: 145, 42: 42, 20: 20}
False
3. 格雷编码
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。
给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。
格雷编码序列必须以 0 开头。
示例 1:
输入: 2 输出: [0,1,3,2] 解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 010 - 211 - 301 - 1
示例 2:
输入: 0 输出: [0] 解释: 我们定义格雷编码序列必须以 0 开头。给定编码总位数为 n 的格雷编码序列,其长度为 2n。当 n = 0 时,长度为 20 = 1。因此,当 n = 0 时,其格雷编码序列为 [0]。
出处:
https://edu.csdn.net/practice/25116233
代码:
class Solution(object):
def grayCode(self, n):
"""
:type n: int
:rtype: List[int]
"""
res = [0]
for i in range(n):
for j in reversed(range(len(res))):
res.append(res[j] + (1 << i))
return res
if __name__ == "__main__":
s = Solution()
print(s.grayCode(2))
print(s.grayCode(0))
输出:
[0, 1, 3, 2]
[0]
🌟 每日一练刷题专栏 🌟
✨ 持续,努力奋斗做强刷题搬运工!
👍 点赞,你的认可是我坚持的动力!
🌟 收藏,你的青睐是我努力的方向!
✎ 评论,你的意见是我进步的财富!
☸ 主页:https://hannyang.blog.csdn.net/