zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    java基础
    JAVASE 安装步骤
    MySQL 45道练习题
    MySQL 多表查询
    2018-08-07JDBC连接MySQL+增删改表格+SQL注入问题及其预处理对象PreparedStatement解决方案
    2018-08-06Java中的异常捕获和Throw详细细节
    2018-08-03List接口方法+LinkedList方法+Vector集合+Set接口下HashSet和LinkedHashSet集合+HashCode()+equals()方法对于Set接口判断重复的详细细节
    2018-08-01集合Collection+Iterator迭代器+泛型+增强For循环
    2018-07-31包装类与基本数据类型String的转换+System类详细知识+Arrays类+大数据(BigInteger+BigDecimal)运算
    2018-07-27Final+Static+匿名对象+3中代码块
  • 原文地址:https://www.cnblogs.com/chooperman/p/14547765.html
Copyright © 2011-2022 走看看