📜  使用 O(1) 额外空间反转单个单词(1)

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

使用 O(1) 额外空间反转单个单词

本文介绍如何使用 O(1) 额外空间反转一个单词。我们假设输入的字符串中只包含一个单词,且只使用 ASCII 编码。

方法

我们可以使用双指针来遍历字符串,定义两个变量 leftright,分别表示单词的左右边界。然后我们交换左右边界上的字符,直到 left >= right

算法的时间复杂度为 $O(n)$,其中 $n$ 表示字符串的长度。

代码
def reverse_word(s: str) -> str:
    # 定义左右边界
    left, right = 0, len(s) - 1
    
    # 反转字符串
    while left < right:
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1
    
    return s
测试案例

我们可以执行以下代码来测试上述算法的正确性:

print(reverse_word('hello'))  # 输出 'olleh'
总结

本文介绍了如何使用 O(1) 额外空间反转一个单词。我们通过定义左右边界,并交换边界上的字符,来实现字符串的反转。