784. 字母大小寫全排列
阿新 • • 發佈:2021-12-21
給定一個字串S,通過將字串S中的每個字母轉變大小寫,我們可以獲得一個新的字串。返回所有可能得到的字串集合。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/letter-case-permutation
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
心之所向,素履以往 生如逆旅,一葦以航import java.util.ArrayList; import java.util.List; class Solution { private List<String> ret = new ArrayList<>(); private void solve(char[] str, int index) { if (str.length == index) { ret.add(new String(str)); return; } solve(str, index + 1); if (Character.isAlphabetic(str[index])) { if (Character.isLowerCase(str[index])) { str[index] = Character.toUpperCase(str[index]); solve(str, index + 1); str[index] = Character.toLowerCase(str[index]); } else { str[index] = Character.toLowerCase(str[index]); solve(str, index + 1); str[index] = Character.toUpperCase(str[index]); } } } public List<String> letterCasePermutation(String s) { solve(s.toCharArray(), 0); return ret; } }