1. 程式人生 > >Leetcode 784

Leetcode 784

++ 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