题目
【问题描述】
在两行中分别输入一个字符串s和整数n,定义一个函数将字符串s循环向右移动n位,n为负数时左移。
若s为空串’‘,则不论n为多少,均输出’‘
【输入形式】
【输出形式】
【样例输入】
如 s=‘123456’
n=3
【样例输出】
输出结果:456123
解法
s = list(input())
n = int(input())
l = len(s)
t = [] # temp
if l == 0 or l == 1:
print(''.join(s))
else:
if n > 0: #正向移动
for j in range(l):
t.append('#')
n %= l # 去周期
for i in range(0, l):
if i + n <= l - 1:
t[i + n] = s[i]
else:
t[i + n - l] = s[i]
else: # 逆向移动
for j in range(l):
t.append('#')
for i in range(0, l):
if i + n >= 0:
t[i + n] = s[i]
else:
t[i + n + l] = s[i]
print(''.join(t))
类比方阵沙路法