zoukankan      html  css  js  c++  java
  • leetcode-784 字母大小写排序

    leetcode-784 字母大小写排序

    题目描述:

    给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。

    注:一直陷在怎么往后遍历,刚开始想把这个字母pop出来,其实可以用一个index来遍历;

    class Solution:
        def letterCasePermutation(self, S: str) -> List[str]:
            
            def dfs(S,index,path):
                if len(S) == index:
                    res.append("".join(path[:]))
                    return
                else:
                    if S[index].isalpha():
                        dfs(S,index+1,path+[str.lower(S[index])])
                        dfs(S,index+1,path+[str.upper(S[index])])
                    else:
                        dfs(S,index+1,path+[S[index]])
            res = []
            dfs(list(S),0,[])
            return res
    

    刚开始的想法,是可以行得通的,主要是一些细节问题没有想清楚;

    class Solution:
        def letterCasePermutation(self, S: str) -> List[str]:
            
            def dfs(S,path):
                if len(S) < 1:
                    res.append("".join(path[::-1]))
                    return
                else:
                    if S[-1].isalpha():
                        tmp = S.pop()
                        dfs(S,path+[str.lower(tmp)])
                        S.append(tmp)
                        tmp = S.pop()
                        dfs(S,path+[str.upper(tmp)])
                        S.append(tmp)
                    else:
                        tmp = S.pop()
                        dfs(S,path+[tmp])
                        S.append(tmp)
            res = []
            dfs(list(S),[])
            return res
    
  • 相关阅读:
    [学习笔记]多维偏序
    SCOI2009 游戏
    置换群和Burnside引理,Polya定理
    AC自动机——多个kmp匹配
    51nod 1667 概率好题
    分块——优化的暴力
    [Cqoi2014]数三角形——组合数
    C++ 中的导致编译错误汇总
    哈夫曼树Huffman
    导出查询结果到csv文件
  • 原文地址:https://www.cnblogs.com/curtisxiao/p/11280572.html
Copyright © 2011-2022 走看看