//这代码可真丑陋,但我学到了两点1:char和string可以无缝互相转换2:char可以直接加减数字进行转换string不行

class Solution {
public:
vector<string> letterCasePermutation(string S) {
vector<string> res;
string add;
DFS(res,S,,add);
return res;
} char func(char temp){
if(temp >= &&temp <= ){
temp -= ;
}
else if(temp <= &&temp >= ){
temp += ;
}
return temp;
} void DFS(vector<string>& res,string s,int pos,string add){
if(add.size() == s.size()){
res.push_back(add);
}
else{
for(int i=pos;i < s.size();i++){
char t = s[i];
if(t >= && t <= ){
add += s[i];
}
else{
string temp = add;
temp += func(t);
DFS(res,s,i+,temp);
add += s[i];
}
}
if(add.size() == s.size()){ // 这里又加了个是因为害怕最后一个是数字
res.push_back(add);
} }
}
};

好方法:很简洁

class Solution {
public:
vector<string> letterCasePermutation(string S) {
vector<string> res;
helper(S, , res);
return res;
}
void helper(string& s, int pos, vector<string>& res) {
if (pos == s.size()) {
res.push_back(s);
return;
}
helper(s, pos + , res);
if (s[pos] > '') {
s[pos] ^= ;
helper(s, pos + , res);
}
}
};

最新文章

  1. with CTE AS
  2. oracle 创建用户和imp指定表空间
  3. 【翻译十四】java-并发之保护块儿
  4. CDH的几个包的下载地址
  5. java 笔记(4) —— java I/O 流、字节流、字符流
  6. 【linux】 静态库编译
  7. Visual Studio 快捷键
  8. weblogic配置数据源出错
  9. BufferedInputStream详解
  10. The Native POSIX Thread Library for Linux - 设计文档
  11. ELF文件格式分析--结构篇
  12. ACM 重建二叉树
  13. 解决PL/SQL Developer 连接oracle 11g 64位中的问题
  14. 为什么wait()方法要放在同步块
  15. 微信app支付的坑
  16. 控件_SeekBar与RatingBar
  17. Codeforces Beta Round #52 (Div. 2)
  18. Ubuntu18.04使用f3probe检测U盘实际容量
  19. Windows10+Python3下安装NumPy+SciPy+Matplotlib
  20. 缓冲区溢出基础实践(一)——shellcode 与 ret2libc

热门文章

  1. python之路----socketserver模块
  2. C++微专业课程辅导(内存模型和动态内存)
  3. 写Java代码的一些小技巧
  4. vs下C++内存泄露检测
  5. 关于python环境的一些安装设置
  6. Oracleグラントについて
  7. Linq in GroupBy GroupJoin
  8. git 指定要提交的ssh key
  9. 【打分策略】Elasticsearch打分策略详解与explain手把手计算
  10. IEnumerable与IEnumerator