美文网首页
Day046|Python编程300例之旋转字符串

Day046|Python编程300例之旋转字符串

作者: 龙渊的宝藏 | 来源:发表于2021-04-11 23:32 被阅读0次

今天是Andy学Python的第46 天哦! 

大家好,我是Andy。 

01.

项目需求

旋转列表是把列表从右向左旋转。

旋转字符串则是把字符串从左向右旋转。

循环右移1位,就是把字符串最右端的字符取出,然后再把这个字符追加到字符串的首位。

以此类推,循环右移k位,就是把字符串右端的k位字符取出,然后再把这些字符按顺序逐一追加到列表的左端。

输入str = "abcdefg", k = 3, 输出"efgabcd".

输入str = "abcdefg", k = 0, 输出"abcdefg".

输入str = "abcdefg", k = 1, 输出"gabcdef".

输入str = "abcdefg", k = 2, 输出"fgabcde".

02.

拆解任务

与旋转列表方法相同,采用切片方法分别取出字符串的两部分,再拼接。

右移与左移不同的地方在于,采用-k反向取值。

03.

版本1.0 

该方法基本满足项目4个例子。

04.

书上代码

# 书上代码

class Solution:

    # 参数s:字符列表

    # 参数k:整数

    # 返回值:无

    def rotateString(self, s, k):

        if len(s) > 0:

            k = k % len(s)

        temp = (s + s)[len(s) - k : 2 * len(s) - k]

        for i in range(len(temp)):

            s[i] = temp[i]

# 主函数

if __name__ == '__main__':

    s = ["a", "b", "c", "d", "e", "f", "g"]

    k = 3

    solution = Solution()

    solution.rotateString(s, k)

    print("输入:s = ", ["a", "b", "c", "d", "e", "g"], " ", "k = ",k)

    print("输出:s = ", s) 

05.

思考

书上代码增加了k = k % len(s),应该是考虑偏移量如果超过字符串长度的情况。

验证偏移量大于字符串长度,确实函数失灵。

修改个人版本2.0

# 旋转字符串

# Andy 2021-04-02

def rotate_str(str_a, k):

    k = k % len(str_a)

    return str_a[-k:] + str_a[:-k]   # 切片,将原字符串一分为二,再拼接

# 主函数

a = "abcdefg"

print(rotate_str(a, 3))

print(rotate_str(a, 0))

print(rotate_str(a, 1))

print(rotate_str(a, 15))

51Day Day up!

向上向善,日进一步!

每天学习,努力成长!

定个小目标,开启成长的旅程,遇见更好的自己。

这是我们和自己的约定,许诺自己不负韶华。

路虽远,行则将至;事虽难,做则必成。

成长的最好时机,就是当下。

相关文章

  • Day046|Python编程300例之旋转字符串

    今天是Andy学Python的第46天哦! 大家好,我是Andy。 01. 项目需求 旋转列表[http://mp...

  • Python学习资料--字符串处理内置方法全集

    Python学习资料整理--字符串处理内置方法全集 代码小工蚁整理了python编程语言的字符串处理内置方法。欢迎...

  • 2018-07-23 Chapter 2.1 Ablout St

    《Python编程从入门到实践》第二章 字符串print("Hello Python world!") msg1 ...

  • Python3 & ⾯向对象基础一

    Python是⾯向对象的⾼级编程语⾔.在Python中“⼀切都是对象”:数字、字符串、元组、列表、字典、集合等内置...

  • 6.Python基础数据类型之字符串

    Python基础数据类型之字符串 字符串(str)字符串是 Python 中最常用的数据类型。使用引号('或")来...

  • 从Scratch到Python之角色与造型

    从Scratch到Python之角色与造型 继续讲解通过python turtle从积木编程过渡到代码编程的技巧....

  • python 之禅

    python之禅-被官方接纳的python编程指导原则 在python的Shell中键入import this ,...

  • 左旋转字符串python

    题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对...

  • Python字符串

    0.4:字符串 4.1 字符串的定义 字符串 就是 一串字符,是编程语言中表示文本的数据类型 在 Python 中...

  • Python输出格式全总结

    字符串格式化方法 在Python语言编程中,我们会与字符串打交道,那务必会输出字符串来查看字符串的内容,Pytho...

网友评论

      本文标题:Day046|Python编程300例之旋转字符串

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