2024年NOC中小学信息技术创新大赛Python初中组复赛习题——字符串反转
【题干描述】
编写一个Python程序,使用递归函数实现字符串的反转。例如,函数接受一个字符串"hello"作为参数,返回反转后的字符串"olleh"。
【程序要求】
1、程序开始,提示用户输入一个字符串
2、如果字符串的长度小于或等于1,函数直接返回字符串本身。
3、如果字符串的长度大于1,函数直接返回反转后的字符串。
4、打印出反转后的字符串的相关信息
【示例1】
输入:请输入一个字符串:hello
输出:反转后的字符串为:olleh
【示例2】
输入:请输入一个字符串:h
输出:反转后的字符串为:h
【主要概念】
递归函数,如果一个函数在内部调用自身本身,这个函数就是递归函数。
视频讲解:《从Scratch进阶到Python—基础篇》第十章递归函数【视频】
【基本思想】
解决字符串反转的问题的基本思想是把字符串看做一个递归对象。长字符由较短字符组成,每个小字符也是一个对象。假如把一个字符串看成仅有两部分组成首字符和剩余字符,如果将剩余字符串与首字符交换,就完成了反转整个字符串。
【参考答案】
def f(s): if len(s) <=1: return s else: return f(s[1:]) + s[0] str = input("请输入一个字符串:") print(f(str))
【代码解释】
这段代码定义了一个递归函数 f(s),用于翻转输入的字符串。
函数的参数是字符串 s,代表输入的字符串。
函数内部的逻辑如下:
首先,检查输入的字符串s的长度是否小于等于1。如果是空字符串或一个字符,则直接返回字符串本身。如果不是空字符串,则进入 else 分支。
在 else 分支中,函数会递归调用自身f,传入除第一个字符之外的子字符串 s[1:],并将其结果与第一个字符 s[0] 拼接。
递归调用的作用是不断去除字符串的第一个字符,直到字符串变为一个字符。
当字符串变为只有字符时,递归终止,开始进行逐层返回,每一层返回时都会将前一层的结果与当前字符拼接,直到最后返回完整翻转后的字符串。
本站内容未经许可,禁止任何网站及个人进行转载。