📅  最后修改于: 2023-12-03 15:22:15.058000             🧑  作者: Mango
本文介绍如何使用 O(1) 额外空间反转一个单词。我们假设输入的字符串中只包含一个单词,且只使用 ASCII 编码。
我们可以使用双指针来遍历字符串,定义两个变量 left
和 right
,分别表示单词的左右边界。然后我们交换左右边界上的字符,直到 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) 额外空间反转一个单词。我们通过定义左右边界,并交换边界上的字符,来实现字符串的反转。