一个字符串,对其每3个字符进行一次翻 ‌

一个字符串,对其每3个字符进行一次翻转,如下:


字符串:abcdefghi ==> 翻转后:cbafedihg


如果最后待翻转的不足3个字符,也同样进行翻转,如下:


字符串:abcdefgh ==> 翻转后:cbafedhg


a = input()#或者直接是a = "abcdefghi"也行

b = ""

for i in range(0,len(a),3):
    if i+2 < len(a):
        b += a[i+2]
    if i+1 < len(a):
        b += a[i+1]
    b += a[i]
print(b)

每三个字符翻转一次,也就是abc变成cba,可以发现中间那个字符是不需要变动的。
最后待翻转的不足3个字符时,有两种情况:
1、一个字符,不用处理。
2、两个字符,互换位置。

def f(s):
    x, length = '', len(s)
    for i in range(2, length, 3):
        x += s[i] + s[i-1] + s[i-2]

    if length % 3 == 2:
        x += s[length - 1] + s[length - 2]

    return x


def run():
    number = 3  # 翻转字符个数
    a = "abcdefghi"
    b = ""
    for i in range(0, len(a), number):
        b += a[i: i + number][::-1]
    print(b)