• 【python解题笔记20210317】CodeWars:Mumbling


    题目

    内容:检测传入大小写字母的字符串,按照如下规则输出:第1个字符输出1次,第二个字母输出2次,依次往后,另外每个首字母大写,其他小写

    链接:https://www.codewars.com/kata/5667e8f4e3f572a8f2000039/train/python

    截图:

      

    解题

    思路: 

    1、首先需对传入的字符串进行逐个单词分隔成列表,使用list()函数。

    2、对得到的列表中字母按照1、2、3的次数叠加相同的字母,使用str*i(次数)。

    3、此时得到的字符串大小写情况不确定,使用title()函数将首字母转换成大写,其他字母转换成小写。

    4、定义1个结果字符串将每轮得到的字符串+分隔符‘-’拼接起来。

    5、由于上述得到的结果结尾处多1个'-',使用strip('-')指定删除首尾的'-',得出最终的结果。

    结果:

      

    源码:

    def accum(s):
        """
        检测传入大小写字母的字符串,按照如下规则输出
        accum("abcd") -> "A-Bb-Ccc-Dddd"
        accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
        accum("cwAt") -> "C-Ww-Aaa-Tttt"
        :param s: 传入字符串、只包含大小写
        :return: 输出字符串,按照第1个字符输出1次,第二个字母输出2次,依次往后,另外每个首字母大写,其他小写
        """
        s=list(s)   #将传入字符串转换成列表
        result=''   #定义空字符串用于存储最后的结果
        print(s)
        j=0
        for i in s:
            j += 1    #每次循环j+1,用于得到每次循环时生成的字母重复次数
            i=i*j     #生成重复的字母
            i=i.title()   #使用title()函数将首字母转换成大写,其他字母转换成小写
            print(i)
            result=result+i+'-'   #将每轮生成的字符串拼接在result字符串中,以及拼接上'-',此时最后一位多个1个'-'
            pass
        print(result)
        result=result.strip('-')    #使用strip()方法去除首尾的'-',由于前面没有'-',最终只删除了最后1位的'-'
        print(result)
        return result

    知识点

    1、strip()函数用于字符串头部和尾部的指定字符串,默认为空格或换行符,但可以指定字符串,如本次用到的strip('-')。

    2、list()函数可以将字符串转换成列表。

    3、字符串的拼接可以使用str1+str2号,也可以使用str*次数,来快速获取相同的字符串。(另外,PS:append函数用于在列表末尾添加新的对象。)

    参考资料:

    https://www.runoob.com/python3/python3-upper-lower.html

    https://www.cnblogs.com/xiaoleiel/p/8301402.html

    https://blog.csdn.net/runner668/article/details/81067458

  • 相关阅读:
    water——小根堆+BFS
    P5930 [POI1999]降水/SP212 WATER
    Blue Mary的战役地图——Hash表
    Antisymmetry(反对称)——Manacher
    数论基础
    可持久化数据结构(线段树,trie树)
    20200725模拟赛5题解
    vscode 如何创建git 新分支
    mysql 把一个数据库中的表数据复制到另一个数据库中
    shrio中的用法以及配置
  • 原文地址:https://www.cnblogs.com/chooperman/p/14547765.html
Copyright © 2020-2023  润新知