源题目
https://leetcode-cn.com/problems/letter-case-permutation/
784. 字母大小写全排列
难度中等290
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。
示例: 输入:S = “a1b2” 输出:[“a1b2”, “a1B2”, “A1b2”, “A1B2”] 输入:S = “3z4” 输出:[“3z4”, “3Z4”] 输入:S = “12345” 输出:[“12345”]
提示:
- S 的长度不超过12。
- S 仅由数字和字母组成。
通过次数39,500
提交次数57,795
class Solution {/*** @param String $s* @return String[]*/function letterCasePermutation($s) {$all = [$s];$s = str_split($s);$alphabets = str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');$chars = array_intersect($s, $alphabets);foreach($chars as $key => $value){foreach($all as $newString){$newStringArray = str_split($newString);$newStringArray[$key] = strtolower($newStringArray[$key]);$all[] = implode($newStringArray);$newStringArray = str_split($newString);$newStringArray[$key] = strtoupper($newStringArray[$key]);$all[] = implode($newStringArray);}}$all = array_unique($all);sort($all);return $all;}}
