Python每日一练(20230426)

简介: Python每日一练(20230426)

1. 删除重复字符


原标题: 输出不重复的字符


输入一个字符串,把最左边的10个不重复的字符(大小写算不同字符)挑选出来。 如不重复的字符不到10个,则按实际数目输出。


输入格式:

输入一个字符串s。


输出格式:

输出一个字符串,包含字符串s最左边10个不重复的字符。不到10个按实际输出。


输入样例1:

Hello world, hello python

输出样例1:

Helo wrd,h

输入样例2:

succeed

输出样例2:

suced


出处:

https://edu.csdn.net/practice/26559381

代码:

def unique(s):
    set1 = set([])
    out = ""
    for i in range(len(s)):
        c = s[i]
        if c and in set1:
            out = out + c
            set1.add(c)
    return out[0:10]
def main():
    strin = "Hello world, hello python"
    ret = unique(strin)
    print(ret)
if __name__ == '__main__':
    main()

输出:

Helo wrd,h


2. 颜色分类


给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。


此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。


示例 1:

输入:nums = [2,0,2,1,1,0]

输出:[0,0,1,1,2,2]


示例 2:

输入:nums = [2,0,1]

输出:[0,1,2]


示例 3:

输入:nums = [0]

输出:[0]


示例 4:

输入:nums = [1]

输出:[1]


提示:

   n == nums.length

   1 <= n <= 300

   nums[i] 为 0、1 或 2

进阶:

   你可以不使用代码库中的排序函数来解决这道题吗?

   你能想出一个仅使用常数空间的一趟扫描算法吗?

出处:

https://edu.csdn.net/practice/26559382

代码:

class Solution(object):
    def sortColors(self, nums):
        low, mid, high = 0, 0, len(nums) - 1
        while mid <= high:
            if nums[mid] == 0:
                nums[low], nums[mid] = nums[mid], nums[low]
                low += 1
                mid += 1
            elif nums[mid] == 1:
                mid += 1
            else:
                nums[high], nums[mid] = nums[mid], nums[high]
                high -= 1
        return nums
# %%
s = Solution()
print(s.sortColors(nums = [2,0,2,1,1,0]))


输出:

[0, 0, 1, 1, 2, 2]


3. 计算圆周率


存在圆心在直角坐标系原点且半径为 1 的圆及其外切正方形。为计算方便,仅考虑位于第一象限的四分之一正方形和四分之一圆。随机生成该四分之一正方形中一系列点,散布于四分之一圆内比例即为圆周率四分之一。散步点越多,结果越精确,耗时也越长。

以下程序实现了这一功能,请你填补空白处内容:

```python

from random import random
from math import sqrt
N=eval(input("请输入次数:"))
K=0 
for i in range(1,N+1):
    x,y=random(),random()
    dist =sqrt(x**2+y**2)
    _____________________;
pi=4*(K/N)    
print("圆周率值:{}".format(pi))
```


出处:

https://edu.csdn.net/practice/26559383

代码:

from random import random
from math import sqrt
N=eval(input("请输入次数:"))
K=0
for i in range(1,N+1):
    x,y=random(),random()
    dist =sqrt(x**2+y**2)
    if dist<=1.0:
        K=K+1
pi=4*(K/N)
print("圆周率值:{}".format(pi))



输出:

略,这种计算圆周率的方法叫做蒙特卡洛法




目录
打赏
0
0
0
0
74
分享
相关文章
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
142 1
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
|
10月前
|
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
100 0
Linux 终端命令之文件浏览(3) less
|
10月前
|
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
270 0
Rust 编程小技巧摘选(8)
|
10月前
|
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
74 0
力扣 C++|一题多解之动态规划专题(1)
|
10月前
|
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
86 0
Python Numpy入门基础(二)数组操作
|
10月前
|
力扣C++|一题多解之数学题专场(1)
力扣C++|一题多解之数学题专场(1)
82 0
力扣C++|一题多解之数学题专场(1)
|
10月前
|
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
78 0
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
|
10月前
|
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
100 0
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
|
10月前
|
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
115 0
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
|
10月前
|
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
112 0
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等