Python每日一练(20230409) 字符串拆分数值求和、快乐数、格雷编码

简介: Python每日一练(20230409) 字符串拆分数值求和、快乐数、格雷编码

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/


目录
相关文章
|
19天前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
118 64
|
11天前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
33 5
|
15天前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
23 7
|
21天前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
29 6
|
2月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
40 0
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
23 0
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)
23 0
|
4月前
|
存储 数据安全/隐私保护 索引
Python基础语法day02字符串详解和列表
Python基础语法day02字符串详解和列表
|
7月前
|
存储 索引 Python
Python基础 笔记(七) 容器--字符串、列表
Python基础 笔记(七) 容器--字符串、列表
52 4
|
6月前
|
索引 Python
Python零基础入门-2 数字、字符串和列表
Python零基础入门-2 数字、字符串和列表