标签: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