LeetCode-Algorithms-[Easy]784. 字母大小写全排列

    技术2025-05-25  45

    给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。

    示例:

    输入: S = “a1b2” 输出: [“a1b2”, “a1B2”, “A1b2”, “A1B2”]

    输入: S = “3z4” 输出: [“3z4”, “3Z4”]

    输入: S = “12345” 输出: [“12345”]

    注意:

    S 的长度不超过12。 S 仅由数字和字母组成。

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/letter-case-permutation 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


    int n; public List<String> letterCasePermutation(String S) { initial(S); return letterCasePermutation(new LinkedList<>(), S.toCharArray(), 0); } private List<String> letterCasePermutation(List<String> ans, char[] chars, int i) { if (i == n) { String value = String.valueOf(chars); ans.add(value); return ans; } if (Character.isLetter(chars[i])) { chars[i] = Character.toLowerCase(chars[i]); ans = letterCasePermutation(ans, chars, i + 1); chars[i] = Character.toUpperCase(chars[i]); ans = letterCasePermutation(ans, chars, i + 1); return ans; } return letterCasePermutation(ans, chars, i + 1); } private void initial(String _S) { n = _S.length(); }
    Processed: 0.013, SQL: 9