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
    
  • 相关阅读:
    Java自学
    java自学
    每日总结
    每日总结
    每日总结
    每周总结
    每日总结
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/curtisxiao/p/11280572.html
Copyright © 2011-2022 走看看