1. 程式人生 > >784. Letter Case Permutation_dfs_搜尋

784. Letter Case Permutation_dfs_搜尋

此題題意的意思是,給定一個大小寫和數字混合的字串,輸出的字串必須滿足字串中大寫變成小寫,小寫變成大寫,

首先定義一個全域性變數來儲存答案。因為每一個字元所在的位置輸出不變,所以不用迴圈來遍歷只需要遞迴搜尋(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!!!!!