python算法题目100及最佳答案
Python算法题目100及最佳答案
Python作为一门高效、简洁的编程语言,自然也有着强大的算法处理能力。以下是Python算法题目100及其最佳答案,供大家练习和参考。
1. 输入一个数字n,计算并输出1到n的所有数字的和。
```python
def sum(n):
return (n*(n+1))/2
```
2. 输入一个数字n,计算并输出1到n的所有数字的平方和。
```python
菜鸟教程python3100题def square_sum(n):
return (n*(n+1)*(2*n+1))/6
```
3. 输入一个数字n,判断其是否为质数。
```python
def is_prime(n):
if n<=1:
return False
for i in range(2, int(n/2)+1):
if n%i == 0:
return False
return True
```
4. 输入一个数字n,输出其所有的质因数。
```python
def prime_factors(n):
factors = []
d = 2
while d*d <= n:
while (n % d) == 0:
factors.append(d)
n //= d
d += 1
if n > 1:
factors.append(n)
return factors
```
5. 输入一个字符串,判断其是否是回文字符串。
```python
def is_palindrome(s):
s = s.lower().replace(' ','')
return s == s[::-1]
```
6. 输入一个序列,判断其是否是有序的。
```python
def is_sorted(seq):
for i in range(len(seq)-1):
if seq[i+1] < seq[i]:
return False
return True
```
7. 输入两个有序序列,将其合并成一个有序的序列并输出。
```python
def merge_sorted_lists(a,b):
i, j = 0, 0
result = []
while i < len(a) and j < len(b):
if a[i] < b[j]:
result.append(a[i])
i += 1
else:
result.append(b[j])
j += 1
result += a[i:]
result += b[j:]
return result
```
8. 输入一个字符串或列表,输出其所有的子序列。
```python
def sublists(s):
n = len(s)
return [s[i:j+1] for i in range(n) for j in range(i,n)]
```
9. 输入一个序列和一个数字k,输出其中所有的长度为k的连续子序列。
```python
def k_sublists(s,k):
return [s[i:i+k] for i in range(len(s)-k+1)]
```
10. 输入两个数字a和b,计算并输出它们的最大公约数和最小公倍数。
```python
def gcd(x,y):
while y:
x, y = y, x % y
return x
def lcm(a, b):
return a*b // gcd(a, b)
```
以上就是Python算法题目100及其最佳答案,希望对大家的Python算法练习有所帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论