784. 字母大小写全排列
给定一个字符串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;
}
}
心之所向,素履以往 生如逆旅,一苇以航

浙公网安备 33010602011771号