问题:
将一个n元一维向量向左旋转i个位置。例如,当n=8且i=3时,向量abcdefgh旋转为defghabc。简单的代码使用一个n元的中间向量在n步内完成该工作。
解答:
简述原理:将问题简化成将ab转换成ba。先对a求逆得arb;再对b求逆得arbr;最后整体求逆(arbr)r得到ba。
python代码如下,忽略细节:
1 # -*- coding: utf-8 -*- 2 s = raw_input("请输入字符串:") 3 here = raw_input("在哪翻转:") 4 here = int(here) 5 lens = len(s) 6 l1 = s[0:here] 7 l2 = s[here:lens] 8 result = l1[::-1] + l2[::-1] 9 print result[::-1]