📌  相关文章
📜  国际空间研究组织 | ISRO CS 2007 |问题 14(1)

📅  最后修改于: 2023-12-03 15:37:13.686000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2007 |问题 14

这是一个考察字符串操作的问题。题目要求我们完成一个程序,将输入的字符串翻转后输出。

输入格式

输入的字符串只包含小写字母和空格,字符串长度不超过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$为输入字符串长度。经过测试,本解法在时间上表现良好,可以顺利通过本题。