数据结构与算法Python实现——第一章习题答案

1

def is_multiple(n, m):
    return not n % m

2

def is_even(k):
    k = abs(k)
    while k >= 1:
        k -= 2
    return not k
def is_even(k):
	return not k&1

3

def minmax(date: list):
    min_num = max_num = date[0]
    for num in date:
        if num > max_num:
            max_num = num
        elif num < min_num:
            min_num = num
    return (min_num, max_num)

4

def my_func(n: int):
    ans = 0
    for i in range(1, n+1):
        ans += i ** 2
    return ans

5

def my_func(n: int):
	return sum([num**2 for num in range(1, n+1)])

6

def my_func(n: int):
    ans = 0
    for i in range(1, n+1, 2):
        ans += i ** 2
    return ans

7

def my_func(n: int):
    return sum([num**2 for num in range(1, n+1, 2)])

8

j = n + k

9

list(range(50, 81, 10))

10

list(range(8,-9,-2))

11

print([2 ** i for i in range(9)])

12

def my_choice(date):
    from random import randrange
    return date[randrange(len(date))]

13

def reverse_list(date: list):
    return date[::-1]

14

def my_func(date: list[int]):
    even_list = [a for a in set(date) if a & 1 == 1]
    return len(even_list) >= 2

15

def my_func(date: list[int]):
    return len(date) == len(set(date))

18

print([x*(x+1) for x in range(10)])

19

start = ord('a')
print([chr(start+i) for i in range(26)])

20

def my_func(date):
    import random
    a = []
    while date:
        cur = date.pop(random.randint(0, len(date)-1))
        a.append(cur)
    date[:] = a[:]

22

def my_func(a:list[int], b: list[int]):
    return [a[i] * b[i] for i in range(len(a))]

23

def my_func(date, i):
    try:
        print(date[i])
    except IndexError:
        print("Don't try buffer overflow attacks in Python!")

my_func([3,1,4], 4)
--------------------
Don't try buffer overflow attacks in Python!

24

def my_func(str):
    import re
    list = re.findall("[aeiou]", str.lower())
    print(len(list))

str = "AdjfaFIofaIa"
my_func(str)
-------------
7

25

def my_func(str):
    import re
    str = re.sub("[^A-Za-z ]","",str)
    return str

str = "Hello, everyone!"
print(my_func(str))
--------------
Hello everyone

26

a = input("Please enter the value of 'a': ")
b = input("Please enter the value of 'b': ")
c = input("Please enter the value of 'c': ")
if (a+b == c) or (a==b-c) or (a*b==c):
    print("yes")
else:
    print("no")

27

def factors(n):
    k = 1
    cur = []
    while k * k < n:
        if n % k == 0:
            yield k
            cur.append(n // k)
        k += 1
    if k * k == n:
        yield k
    for i in cur[::-1]:
        yield i

a = factors(10)
print(list(a))
------------
[1, 2, 5, 10]

28

def norm(v, p=2):
    cur = 0
    for i in v:
        cur += i ** 2
    return cur ** (1/2)

29

def output_string(s):
    ans = ''
    for i in s:
        ans += i
    print(ans)

s = ['c','a','t','d','o','g']
import itertools
for item in itertools.permutations(s):
    output_string(item)

30

def my_func(num):
    i = 0
    while num >= 2:
        i += 1
        num /= 2
    print(i)

my_func(9)
----------
3

32


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值