算法习题的积累

一、递归

1 阶乘函数

def factorial(n):
    if n == 1:
        return n
    return n * factorial(n - 1)

print(factorial(5))  # 120

2 Fibonacci数列

# 1 1 2 3 5 8 13
def Fibonacci(n):
    if n == 1 or n == 2:
        return 1
    return Fibonacci(n - 1) + Fibonacci(n - 2)

print(Fibonacci(6))  # 8

3 全排列问题

def perm(arr, m, n):
    if m == n:
        for i in arr:
            print(str(i) + ' ', end='')
        print()
    for i in range(m, n):
        swap(arr, m, i)
        perm(arr, m + 1, n)
        swap(arr, m, i)  # 还原,以避免重复

def swap(arr, a, b):
    temp = arr[a]
    arr[a] = arr[b]
    arr[b] = temp

perm([1, 2, 3], 0, 3)
# 1 2 3 
# 1 3 2 
# 2 1 3 
# 2 3 1 
# 3 2 1 
# 3 1 2

二、动态规划

1 求最长公共子序列

def LCS(str1, str2):
    l1 = len(str1)
    l2 = len(str2)
    substr = []
    # for _ in range(10):表示不用设置变量,用_指代临时变量
    dp = [[0] * (l1 + 1) for _ in range(l2 + 1)]
    for i in range(1, l2 + 1):
        for j in range(1, l1 + 1):
            if str1[j - 1] == str2[i - 1]:
                dp[i][j] = dp[i - 1][j - 1] + 1
                substr.append(str1[j - 1])
            else:
                dp[i][j] = max(dp[i][j - 1], dp[i - 1][j])
    print('Length:{0}'.format(dp[l2][l1]))
    print('Longest Common String:' + ''.join(substr))

s1 = 'abcde'
s2 = 'ace'
LCS(s1, s2)
# Length:3
# Longest Common String:ace

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "130道python练习题.zip"是一个包含130道Python练习题目的压缩文件。这个文件可能包括若干个Python脚本文件或文本文件,在这些文件中分别包含了不同的练习题。由于题目的数量较多,这份练习题压缩文件可能对于想要提高Python编程技能的学习者或者需要参加Python编程考试的人非常有帮助。 通过这份压缩文件,学习者可以利用Python解决不同难度级别的问题,提高他们的编码能力和解决问题的能力。这些练习题可以涵盖Python语言的各个方面,包括基本的语法、数据类型、循环、条件语句、函数、文件操作等。通过实践,学习者可以更好地理解和掌握Python编程语言的各种知识点。 对于想要提高自己的编程能力的人来说,这份练习题压缩文件是一个非常宝贵的学习资源。通过完成这些题目,他们可以积累编程经验,提高自己的逻辑思维和问题解决能力。同时,这些练习题也可以用于培训机构或教育机构的Python编程课程,帮助学生掌握Python编程的基本技能和解决问题的能力。 总之,"130道python练习题.zip"是一个包含了130道Python练习题的压缩文件,对于想要提高Python编程技能的学习者或者需要参加Python编程考试的人来说,是一个非常有价值的资源。通过完成这些练习题,他们可以提高编程水平,增强逻辑思维和问题解决能力。 ### 回答2: "130道Python练习题.zip" 是一个压缩文件,其中包含了130个Python编程练习题的集合。这些练习题旨在帮助学习和提高Python编程的技能。每个练习题都配有详细的题目描述和要求,让学习者能够逐步解决问题并提供相应的解决方案。 通过完成这些练习题,学习者能够提高对Python语法和编程概念的理解,并锻炼自己的编程能力。题目难度不断递增,从基础的语法练习到更复杂的算法数据结构的应用。通过反复练习,学习者能够巩固自己的知识并且提高代码的效率和优雅度。 这个练习题的压缩文件是一个方便的资源,可以按照自己的进度和需求进行学习。学习者可以用任何文本编辑器打开题目,编写自己的解答,并且与提供的解决方案进行对比。 练习编程对于掌握Python及其他编程语言非常重要。通过解决这些练习题,学习者能够提高解决问题的能力和分析思维,并致力于成为一个优秀的Python程序员。 总结来说,"130道Python练习题.zip"是一个提供练习编程能力和理解Python编程语言的资源。通过完成这些练习题,学习者可以提高自己的编程水平,提升对Python及编程概念的理解,培养解决问题的能力,并且成为一个更出色的Python程序员。 ### 回答3: 130道python练习题.zip是一个包含了130个Python练习题目的压缩文件。这些练习题目旨在帮助学习者进一步熟悉和掌握Python编程语言。 这个压缩文件中的题目类型各异,涉及了Python的各个方面,从基础的语法理解到进阶的算法数据结构,都有涵盖。通过解决这些练习题,学习者可以提高他们的编码能力和问题解决能力,并且扩展他们对Python编程语言的理解。 解压缩该文件后,可以得到130个独立的Python文件,每个文件对应一个题目。在每个文件中,包含了问题的具体描述以及必要的输入输出示例。学习者需要仔细阅读问题描述,并编写代码来解决问题。他们可以使用任意编程编辑器来编写代码,并通过运行代码来检验答案是否正确。 通过解答这些题目,学习者将深入了解Python编程语言的许多方面,例如变量、数据类型、条件语句、循环语句、函数、文件操作、异常处理、模块和包等等。此外,这些练习题还会引导学习者思考问题的解决方法,培养逻辑思维和编程思维。完成这些练习题之后,学习者将能够在Python编程方面更加独立和自信。 总之,130道python练习题.zip提供了一个丰富而全面的学习资源,适用于想要提高Python编程能力的学习者。通过解答这些题目,学习者可以加深对Python的理解,并提高编程技巧和问题解决能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值