首页 > 其他分享 >Leetcode第784题:字母大小写的全排列(Letters case permutation)

Leetcode第784题:字母大小写的全排列(Letters case permutation)

时间:2022-10-30 19:00:37浏览次数:59  
标签:784 case 遍历 Letters res pos dfs 大小写 ans

解题思路

使用回溯法。从左往右依次遍历字符,当遍历到字符串s的第i个字符c时:

  • 如果c为一个数字,继续检测下一个字符。
  • 如果c为一个字母,将其进行大小写转换,然后往后继续遍历;完成改写形式的子状态遍历后,将c进行恢复,继续往后遍历。
  • 完成当前字符串的遍历后,表示当前的子状态已经遍历完,该序列称为全排列中的一个。

大小写转换时可以用\(c+32\)来进行转换和恢复。

核心代码如下:

class Solution {
public:
    void dfs(string &s, int pos, vector<string> &res) {
        while (pos < s.size() && isdigit(s[pos])) {
            pos++;
        }
        if (pos == s.size()) {
            res.emplace_back(s);
            return;
        }
        s[pos] ^= 32;
        dfs(s, pos + 1, res);
        s[pos] ^= 32;
        dfs(s, pos + 1, res);
    }

    vector<string> letterCasePermutation(string s) {
        vector<string> ans;
        dfs(s, 0, ans);
        return ans;
    }
};

标签:784,case,遍历,Letters,res,pos,dfs,大小写,ans
From: https://www.cnblogs.com/hql5/p/16841918.html

相关文章

  • shell编程之条件语句(条件测试、if语句、case语句)
    要使Shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0......
  • 力扣784(java)-字母大小写全排列(中等)
    题目:给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。以任意顺序返回输出。 示例1:输......
  • 784. 字母大小写全排列
    784.字母大小写全排列给定一个字符串s,通过将字符串s中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。以任意顺序返回输出......
  • 784. 字母大小写全排列
    784.字母大小写全排列字母大小写全排列。题解:按题意模拟,DFS遍历string的每个下表字符,并对其按题意操作,遍历完添加到答案。classSolution{publicList<String>......
  • Flink性能测试case案例
    在我们做测试之前,调研了一些已有的大数据平台性能测试报告,比如,雅虎的Streaming-benchmarks,或者Intel的HiBench等等。除此之外,还有很多的论文也从不同的角度对分布式计算平......
  • 单链表巧用dummy_head删除, 找目标位置的前一个node, Reverse考虑0/1的Corner Case,
    今天连续做了三道题,感觉越来越有感觉,第三题直接行云流水,10minAC目录203.移除链表元素单链表巧用dummy_head删除一开始犯的一个逻辑错误:val的节点可能连续出现......
  • 反证法证明, 抓住定义的意义,不惧Corner case, 抓住循环不变量 | 代码随想录算法训练
    目录977.有序数组的平方算法的正确性采用反证法证明思路解题方法Code209.长度最小的子数组思维打开,抓住滑动窗口定义本质与意义,笑对CornerCases59.螺旋矩阵II......
  • MySQL中Case When用法详解
    最近,在学习Hive基础知识时,遇到了遇到了CaseWhenElseEnd语法,以前学习MySQL时忽略了这部分知识点,现总结一下相关的知识给大家。首先练习一个例子如下:一、学生课程成绩统......
  • [Oracle] LeetCode 848 Shifting Letters
    YouaregivenastringsoflowercaseEnglishlettersandanintegerarrayshiftsofthesamelength.Calltheshift()ofaletter,thenextletterinthealph......
  • shell脚本之条件语句(条件测试,if,case)
    条件测试文件测试test命令测试表达式是否成立,成立返回0,非0为不成立一:test [选项]条件表达式二:[ 选项 条件表达式]   常用选项 -d测试文件是否......