題目
給定乙個字串s,通過將字串s中的每個字母轉變大小寫,我們可以獲得乙個新的字串。返回所有可能得到的字串集合。
示例:輸入: s = 「a1b2」
輸出: [「a1b2」, 「a1b2」, 「a1b2」, 「a1b2」]
輸入: s = 「3z4」
輸出: [「3z4」, 「3z4」]
輸入: s = 「12345」
輸出: [「12345」]
注意:s 的長度不超過12。
s 僅由數字和字母組成。
思路
1、深度優先搜尋。從頭開始遍歷字串s,如果遇到字母,將其分成兩路,一路不變,一路改變大小寫,如果是數字,則保持不變;遞迴進行,最後得到所有的結果。將s與1<<5異或,可將其進行大小寫轉換。
實現方法
一、深度優先搜尋
class solution
void dfs(string &s,int k,vector&res)
dfs(s,k+1,res);
if(!isalpha(s[k])) return;
s[k] ^= (1<<5); //大小寫轉換
dfs(s,k+1,res);
s[k] ^= (1<<5); //將s恢復
}};
784 字母大小寫全排列
給定乙個字串s,通過將字串s中的每個字母轉變大小寫,我們可以獲得乙個新的字串。返回所有可能得到的字串集合。示例 輸入 s a1b2 輸出 a1b2 a1b2 a1b2 a1b2 輸入 s 3z4 輸出 3z4 3z4 輸入 s 12345 輸出 12345 注意 s 的長度不超過12。s 僅由數字和...
784 字母大小寫全排列
給定乙個字串s,通過將字串s中的每個字母轉變大小寫,我們可以獲得乙個新的字串。返回所有可能得到的字串集合。示例 輸入 s a1b2 輸出 a1b2 a1b2 a1b2 a1b2 輸入 s 3z4 輸出 3z4 3z4 輸入 s 12345 輸出 12345 注意 s 的長度不超過12。s 僅由數字和...
784 字母大小寫全排列
給定乙個字串s,通過將字串s中的每個字母轉變大小寫,我們可以獲得乙個新的字串。返回所有可能得到的字串集合。示例 輸入 s a1b2 輸出 a1b2 a1b2 a1b2 a1b2 輸入 s 3z4 輸出 3z4 3z4 輸入 s 12345 輸出 12345 class solution void d...