反转字符串

Posted 刘[小]倩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反转字符串相关的知识,希望对你有一定的参考价值。

【题意描述】

假定给定字符串‘abcdef’,将前3个字符串与后面的字符串进行原地反转,即输出:defabc。(要求:不借助任何python的反转函数)

【解题思路】

将一个字符串分割成需要移动的部分和不需要移动的部分,然后将两个部分的字符串分别反转,最后再对整个字符串进行整体反转。

【主要代码分析】
反转过程:start指向起始位置,end指向结束位置。两者交换后,start加一,end减一,直到两者相等

代码实现如下:

def reverseString(sList):
    start = 0
    end = len(sList)-1
    while start<end :
        sList[start], sList[end] = sList[end], sList[start]
        start += 1
        end -= 1
    return sList

def main(s, n):
    s = list(s)    # 因为python字符串属于不可变对象,所以转换为可变对象以便执行交换
    left = reverseString(s[:n])
    right = reverseString(s[n:])
    result = reverseString(left+right)
    return \'\'.join(result)

print main(\'abcdef\', 3)    # defabc

 

以上是关于反转字符串的主要内容,如果未能解决你的问题,请参考以下文章

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

如何在 BackStack 上反转片段动画?

Python 中的反转字符串:reversed()切片等

2022&2023华为OD机试 - 单词反转 2(Python)

华为OD机试真题Java实现单词反转真题+解题思路+代码(2022&2023)

华为OD机试 - 单词反转(Python)| 真题含思路