Leetcode 784
阿新 • • 發佈:2018-11-04
++ char leetcode per pos 進行 vector 加減 ret
//這代碼可真醜陋,但我學到了兩點1:char和string可以無縫互相轉換2:char可以直接加減數字進行轉換string不行
class Solution { public: vector<string> letterCasePermutation(string S) { vector<string> res; string add; DFS(res,S,0,add); return res; } char func(char temp){ if(temp >= 97&&temp <= 122){ temp -= 32; } else if(temp <= 90&&temp >= 65){ temp += 32; } 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 >= 48 && t <= 57){ add += s[i]; } else{ string temp = add; temp += func(t); DFS(res,s,i+1,temp); add += s[i]; } } if(add.size() == s.size()){ // 這裏又加了個是因為害怕最後一個是數字 res.push_back(add); } } } };
Leetcode 784