Python編程題6--字符串每隔3個字符翻轉


題目

針對一個只含數字的字符串,對其每3個數字進行一次翻轉,如下:

字符串:123456789 ==> 翻轉后:321654987

如果最后待翻轉的不足3個字符,也同樣進行翻轉,如下:

字符串:12345678 ==> 翻轉后:32165487

實現思路1

  • 遍歷字符串
  • 每間隔3個字符,對其進行翻轉,然后拼接到新字符串
  • 遍歷結束后,判斷新字符串的長度,是否和原字符串一致
  • 如果不一致則需要對剩余部分字符進行翻轉,再拼接到新字符串

代碼實現

def demo(s):
    new_str = ""
    for i in range(len(s)):
        if (i + 1) % 3 == 0:
            new_str += s[i-2:i+1][::-1]
    if len(s) != len(new_str):
        new_str += s[len(new_str):][::-1]
    return new_str

old_str = "12345678"
print(demo(old_str))

實現思路2

  • 遍歷字符串,步長為3
  • 准備一個列表,每3個字符,作為一個字符串添加到列表中
  • 遍歷列表,對列表中的每個字符串進行翻轉,再通過 join() 方法用依次拼接

代碼實現

def demo(s):
    temp = []
    for i in range(0, len(s), 3):
        temp.append(s[i:i+3])
    return "".join([i[::-1] for i in temp])

old_str = "12345678"
print(demo(old_str))

兩行代碼實現

old_str = "12345678"
print("".join([old_str[i:i+3][::-1] for i in range(0, len(old_str), 3)]))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM