在Python编程中,函数和模块是组织代码、提高代码复用性和可维护性的重要手段。今天,我深入学习了Python的函数和模块。
函数是一段可重用的代码块,它接受输入参数并返回结果。我学习了如何定义和使用函数,包括函数的命名规则、参数传递方式(值传递和引用传递)、返回值等。通过编写一些示例函数,我加深了对函数的理解,如计算两个数的最大值、判断一个数是否为素数等。
模块则是将相关的函数、类和变量组织在一起的文件。通过导入模块,我们可以使用其他程序员编写的代码,从而避免重复造轮子。我学习了如何创建和使用模块,包括模块的命名规则、导入模块的方式(import语句)、使用模块中的函数和类等。
在学习过程中,我还了解到Python提供了许多标准库和第三方库,这些库包含了大量的函数和模块,可以帮助我们快速实现各种功能。我尝试了一些常用的标准库模块,如math模块(用于数学计算)、datetime模块(用于处理日期和时间)等。
通过今天的学习,我掌握了Python的函数和模块的使用方法,为后续学习更高级的编程技巧打下了坚实的基础。同时,我也深刻体会到了代码复用和模块化编程的重要性。
问题理解
我们需要通过对字符串 S 进行若干次操作,使其变成字符串 T 的一个前缀。操作可以是修改 S 的某一个字符,或者删除 S 末尾的字符。目标是计算出最少需要多少次操作。
解题思路
- 比较字符串长度:首先,比较
S和T的长度。如果S的长度大于T的长度,那么S必须删除多余的尾部字符,直到长度与T相同。 - 逐字符比较:从字符串的开头逐字符比较
S和T,直到S的某个字符与T不匹配。 - 计算操作次数:
- 如果
S的某个字符与T不匹配,需要进行修改操作。 - 如果
S的长度大于T的长度,需要进行删除操作。
- 如果
代码提示
以下是一些代码提示,帮助你实现这个逻辑:
def solution(S: str, T: str) -> int:
# 初始化操作次数
operations = 0
# 获取两个字符串的最小长度
min_length = min(len(S), len(T))
# 逐字符比较
for i in range(min_length):
if S[i] != T[i]:
# 如果字符不匹配,增加操作次数
operations += 1
# 如果 S 的长度大于 T 的长度,需要删除多余的尾部字符
if len(S) > len(T):
operations += len(S) - len(T)
return operations
if __name__ == '__main__':
print(solution("aba", "abb") == 1)
print(solution("abcd", "efg") == 4)
print(solution("xyz", "xy") == 1)
print(solution("hello", "helloworld") == 0)
print(solution("same", "same") == 0)
关键步骤注释
- 初始化操作次数:
operations = 0 - 获取两个字符串的最小长度:
min_length = min(len(S), len(T)) - 逐字符比较:
for i in range(min_length): - 字符不匹配时增加操作次数:
if S[i] != T[i]: operations += 1 - 处理多余尾部字符:
if len(S) > len(T): operations += len(S) - len(T)