区域教育联盟网站建设,wordpress 股票主题,苏州设计公司,photoshop手机版免费破解版题目描述#xff1a;
给定一个字符串 s #xff0c;通过将字符串 s 中的每个字母转变大小写#xff0c;我们可以获得一个新的字符串。
返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。
示例 1#xff1a;
输入#xff1a;s a1b2
输出#xff1…题目描述
给定一个字符串 s 通过将字符串 s 中的每个字母转变大小写我们可以获得一个新的字符串。
返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。
示例 1
输入s a1b2
输出[a1b2, a1B2, A1b2, A1B2]示例 2:
输入: s 3z4
输出: [3z4,3Z4]提示:
1 s.length 12s 由小写英文字母、大写英文字母和数字组成
题目链接
. - 力扣LeetCode
解题主要思路
其实这题很简单遍历string中的每个元素每次遍历的时候分两步走一步是不需要进行大小写转换这次直接插入char元素然后进入下一次遍历另一步是进行大小写转换不过需要注意的是如果在进行大小写转换的时候发现需要转换的元素是数字的话那就直接跳过不需要任何改动也不需要记录否则ret中会出现多余的string因为 “不需要进行大小写转换” 这一步已经帮我们做了该做的事。
解题代码
class Solution {
public:vectorstring ret;string path;vectorstring letterCasePermutation(string s) {dfs(s, 0);return ret;}void dfs(string s, int pos){// 结束条件if (path.size() s.size()) {ret.push_back(path);return;}char c s[pos];// 不改变path.push_back(c);dfs(s, pos1);path.pop_back(); // 回溯// 改变if (!(c 0 c 9)) {// 数字的话不用管if (c a c z) c - 32;else c 32;path.push_back(c);dfs(s, pos1);path.pop_back(); }}
};