zoukankan      html  css  js  c++  java
  • 1032. 字母大小写转换

    1032. 字母大小写转换

    中文English

    给定一个字符串S,我们可以将其中所有的字符任意切换大小写并得到一个新的字符串。将所有可生成的新字符串以一个列表的形式输出。

    样例

    样例 1:

    输入: S = "a1b2"
    输出: ["a1b2", "a1B2", "A1b2", "A1B2"]
    

    样例 2:

    输入: S = "3z4"
    输出: ["3z4", "3Z4"]
    

    样例 3:

    输入: S = "12345"
    输出: ["12345"]
    

    注意事项

    S是一个最多长度为12的字符串。
    S只包含字母或者数字。

    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param S: a string
        @return: return a list of strings
        """
        '''
        大致思路:
        1.初始化res = [],循环字符串S,此时区分是字符还是数字
        如果是""的话,直接return ['']
        如果是数字的话,首个值的话,需要判断,直接append到res里面。否则需要循环res,依次对res里面的值重新赋值,res[j] = res[j] + column
        如果是字符的话,首个值的话,需要判断,append字符的upper()和lower()到res里面。否则的话,需要循环res,因为重新赋值会影响循环,每一次内部循环都需要加上当前
        字母的大写和小写进来。所以给定一个append_dic作为缓冲区,res内部循环不变,每一次循环都会append两个值到append_dic里面,最终将res重新赋值,即res =append_dic即可。
        '''
        def  letterCasePermutation(self,S):
            if S == '':
                return ['']
            res = []
            for column in S:
                ##如果是字符的话,需要区分大小写append,否则直接拼接
                if column.isalpha() == True:
                    #如果是首个字符的话,不能循环res
                    if len(res) == 0:
                        res.append(column.lower())
                        res.append(column.upper())
                    else:
                        #只针对字符的情况,每次来都会置空,目的不影响res里面的循环
                        append_dic = []
                        for i in range(len(res)):
                            append_dic.append(res[i] + column.lower())
                            append_dic.append(res[i] + column.upper())
                        res = append_dic
                else:
                    if len(res) == 0:
                        res.append(column)
                    else:
                        #否则的话,就是数字,res需要重新赋值
                        for j in range(len(res)):
                            res[j] = res[j] + column
            return res
  • 相关阅读:
    又见Python<4>:Pandas之DataFrame对象的使用
    又见Python<3>:Pandas之Series对象的使用
    使用tdload工具将本地数据导入到Teradata数据库中
    解决ubuntu系统root用户下Chrome无法启动问题
    又见Python<2>:如何安装第三方库(Windows)
    又见Python<1>:使用Anaconda搭建Python开发环境(Windows7)
    数据仓库原理<4>:联机分析处理(OLAP)
    数据仓库原理<3>:数据仓库与ODS
    配置hibernate,Struts。文件
    jQuery +ajax +json+实现分页
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12603732.html
Copyright © 2011-2022 走看看