美文网首页
Python编程题6--字符串每隔3个字符翻转

Python编程题6--字符串每隔3个字符翻转

作者: wintests | 来源:发表于2020-09-27 10:46 被阅读0次

题目

针对一个只含数字的字符串,对其每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)]))

更多Python编程题,等你来挑战:Python编程题汇总(持续更新中……)

相关文章

  • Python编程题6--字符串每隔3个字符翻转

    题目 针对一个只含数字的字符串,对其每3个数字进行一次翻转,如下: 字符串:123456789 ==> 翻转...

  • LeetCode 344 [Reverse String]

    原题 翻转字符串 样例:给出 s = "hello", 返回 "olleh". 解题思路 方法一:在Python中...

  • 2021-04-16-华为笔试

    华为的笔试是ACM赛制,3个编程题,不得不说,我其实喜欢这个笔试形式。第一题:输入数据量较大,106左右个字符串,...

  • 笔试题 字符集合、删数

    [编程题] 字符集合 输入一个字符串,求出该字符串包含的字符集合 输入描述:每组数据输入一个字符串,字符串最大长度...

  • leetCode进阶算法题+解析(二十四)

    翻转字符串里的单词 题目:给定一个字符串,逐个翻转字符串中的每个单词。 示例 1:输入: "the sky is ...

  • 日更

    665/6--/352/3--/ 665/6--/121/6--/ 612/2--/232/6--/ 561/6-...

  • 翻转字符串里的单词

    翻转字符串里的单词 给定一个字符串,逐个翻转字符串中的每个单词。 示例 1:输入: "the sky is blu...

  • LeetCode: 翻转字符串里的单词

    翻转字符串里的单词 题目叙述 给定一个字符串,逐个翻转字符串中的每个单词。 示例: 输入: "the sky is...

  • leetcode刷题之字符串

    leetcode刷题,使用python 1, 无重复字符的最长子串 —— 0003 字符串 给定一个字符串 s ,...

  • 字符串合并处理

    题目地址 1.想法: 这道题我的想法是完全没问题的 1.合并字符串2.对奇偶数分别进行排序3.翻转每个字符4.转换...

网友评论

      本文标题:Python编程题6--字符串每隔3个字符翻转

      本文链接:https://www.haomeiwen.com/subject/zfkhdktx.html