784. Letter Case Permutation_dfs_搜尋
阿新 • • 發佈:2018-11-10
此題題意的意思是,給定一個大小寫和數字混合的字串,輸出的字串必須滿足字串中大寫變成小寫,小寫變成大寫,
首先定義一個全域性變數來儲存答案。因為每一個字元所在的位置輸出不變,所以不用迴圈來遍歷只需要遞迴搜尋(u+1)來實現對於下一個字元的判斷跟改變。我的程式碼如下:
class Solution { public: vector<string> ans; vector<string> letterCasePermutation(string S) { dfs (S,0); return ans; } void dfs(string S,int u) { if(u==S.size()) { ans.push_back(S); return ; } dfs(S,u+1); if(S[u]>='A') { S[u]^=32;//位運算/異或把字串中的大寫改成小寫,小寫改成大寫。具體可以轉換成二進位制來嘗試一下。 dfs(S,u+1); } } };
We have been working on it!!!!!