Python每日一练(20230409)

简介: Python每日一练(20230409)

1. 任意多行字符串拆分数值求和


编写程序,统计每行字符串中若干整数的和。


每行字符串中整数间的分隔符可能有逗号“,”、分号“ ;”和空格,有多少行就求多少行。


输入格式:

任意输入若干行由整数构成的字符串(回车换行),整数间以逗号或空格或分号分隔。测试数确保至少有一行数据,字符串中的整数数据均合法有效。最后以一个回车结束输入。


输出格式:

对应输出原输入串(一行中的字符序列),冒号后输出各个整数之和。

输入样例:

1. 1; 2 ,3
2. 2 3; 4
3. 10,20 30; 40

输出样例:

1. 1; 2 ,3:6
2. 2 3; 4:9
3. 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]

目录
相关文章
|
Python 人工智能
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
292 1
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
|
Shell Unix Linux
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
243 0
Linux 终端命令之文件浏览(3) less
|
Rust
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
398 0
Rust 编程小技巧摘选(8)
|
算法 C++ 机器人
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
169 0
力扣 C++|一题多解之动态规划专题(1)
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
261 0
Python Numpy入门基础(二)数组操作
|
C++ 存储
力扣C++|一题多解之数学题专场(1)
力扣C++|一题多解之数学题专场(1)
234 0
力扣C++|一题多解之数学题专场(1)
|
Java Go C++
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
203 0
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
|
Java Go C++
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
230 0
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
|
Java Go C++
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
247 0
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
|
Java Go Rust
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
193 0
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II

推荐镜像

更多