• 541. 反转字符串 II


    给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。
    如果剩余少于 k 个字符,则将剩余的所有全部反转;
    如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。

    示例:
    输入: s = "abcdefg", k = 2
    输出: "bacdfeg"

    要求:
    该字符串只包含小写的英文字母。
    给定字符串的长度和 k 在[1, 10000]范围内。

    思路:
    利用字符串截取函数str[a:b]
    注:若b越界,只截取到原串末尾。

    1、每趟原串舍弃前2K个字符;
    2、截取前K个字符并反转
    3、截取K--2K的字符
    4、拼接2和3的结果并整体拼接到ans后;
    5、当原串为空时结束循环,返回ans。
     1 class Solution(object):
     2     def reverseStr(self, s, k):
     3         """
     4         :type s: str
     5         :type k: int
     6         :rtype: str
     7         """
     8         lens = len(s)
     9         # 若原串长度小于k,则将原串反转返回
    10         if lens < k:
    11             return s[::-1]
    12         # 第二个参数越界则截取到串的最后一个字符,不多取空字符
    13         # return s[2*k:8*k]
    14         # 返回值
    15         ans = ""
    16         # 当原串不空时执行循环
    17         while not s == "":
    18             # 截取前K个
    19             temp = s[0:k]
    20             print("截取前K个字符:",temp)
    21             # 反转
    22             temp = temp[::-1]
    23             print("反转后:",temp)
    24             # 截取后K个
    25             flag = s[k:2 * k]
    26             print("截取后K个字符:",flag)
    27             # 拼接到结果串
    28             ans = ans + temp + flag
    29             print("拼接后:",ans)
    30             # 原串前2K个字符舍弃
    31             s = s[2 * k:]
    32         return ans
    33 
    34 
    35 if __name__ == '__main__':
    36     solution = Solution()
    37     print(solution.reverseStr("abcdefg", 2))
    38     print(solution.reverseStr("abcdlaksgdcdefg", 3))
     
     
  • 相关阅读:
    我正在使用的 Gnome 扩展列表(不定期更新)
    PHP中 <<< A ··· A 是什么意思
    Java 中 this 的作用
    Java 类成员变量中 public, private, protected, default 权限区别
    虫师github
    在线学习的网站
    软件测试博客
    乙醇公开课视频
    教你如何写框架------元素管理篇
    自动化测试与持续集成方案--接口测试
  • 原文地址:https://www.cnblogs.com/panweiwei/p/12682241.html
Copyright © 2020-2023  润新知