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
  • 相关阅读:
    POJ1149 最大流经典建图PIG
    POJ1149 最大流经典建图PIG
    POJ3322滚箱子游戏(不错)
    POJ3322滚箱子游戏(不错)
    UVA11020 优势人群(multiset)
    UVA11020 优势人群(multiset)
    UVA11019KMP(二维矩阵匹配出现次数)
    UVA11019KMP(二维矩阵匹配出现次数)
    LA3942字典树+递推
    LA3942字典树+递推
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12603732.html
Copyright © 2011-2022 走看看