设计一个将任意输入的字符串倒置的递归和非递归的算法例如输入序列为abcdefgh输出序列hgfedcba
时间: 2024-10-08 16:19:08 浏览: 32
设计一个将字符串倒置的递归算法:
```python
def reverse_string_recursive(s):
# 基线条件:当字符串为空或只有一个字符时,直接返回该字符
if len(s) < 2:
return s
# 递归条件:通过拼接最后一个字符和剩余部分的反转结果
else:
return reverse_string_recursive(s[1:]) + s[0]
```
现在让我们看一个非递归的版本,使用双指针法:
```python
def reverse_string_iterative(s):
# 将字符串转换成列表以便操作
chars = list(s)
left, right = 0, len(chars) - 1
while left < right:
# 交换左右两端的字符
chars[left], chars[right] = chars[right], chars[left]
# 移动指针向中心靠拢
left += 1
right -= 1
# 返回反转后的字符串
return ''.join(chars)
# 示例:
input_str = "abcdefgh"
print(reverse_string_recursive(input_str)) # 输出:hgfedcba
print(reverse_string_iterative(input_str)) # 同样输出:hgfedcba
阅读全文