📅  最后修改于: 2023-12-03 15:37:13.686000             🧑  作者: Mango
这是一个考察字符串操作的问题。题目要求我们完成一个程序,将输入的字符串翻转后输出。
输入的字符串只包含小写字母和空格,字符串长度不超过100。
输出翻转后的字符串。
输入:
hello world
输出:
dlrow olleh
本题要求我们将一个字符串翻转。翻转有多种方法,我们可以使用栈或双指针等方式来实现。
这里我们采用双指针的方式。定义两个指针p和q,分别指向字符串的首尾。通过交换p和q所指的字符,不断缩小两个指针的距离,最终完成字符串的翻转。
代码实现如下:
def reverse_string(s):
p, q = 0, len(s) - 1
s = list(s)
while p < q:
s[p], s[q] = s[q], s[p]
p += 1
q -= 1
return ''.join(s)
# 测试
print(reverse_string('hello world'))
输出结果:
dlrow olleh
至此,问题得到了解决。
本题时间复杂度为$O(n)$,其中$n$为输入字符串长度。经过测试,本解法在时间上表现良好,可以顺利通过本题。