码迷,mamicode.com
首页 > 其他好文 > 详细

反转字符串

时间:2017-08-16 14:00:06      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:star   res   string   microsoft   一个   分析   class   分享   输出   

【题意描述】

假定给定字符串‘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

 

反转字符串

标签:star   res   string   microsoft   一个   分析   class   分享   输出   

原文地址:http://www.cnblogs.com/liuq/p/7372873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!