Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string. Return a list of all possible strings we could create.
Examples: Input: S = "a1b2" Output: ["a1b2", "a1B2", "A1b2", "A1B2"] Input: S = "3z4" Output: ["3z4", "3Z4"] Input: S = "12345" Output: ["12345"]Note:
S will be a string with length at most 12.S will consist only of letters or digits. 简单题。 package leetcode; import java.util.ArrayList; import java.util.List; public class Letter_Case_Permutation_784 { public List<String> letterCasePermutation(String S) { char[] cs=S.toCharArray(); char[] result=new char[cs.length]; List<String> list=new ArrayList<String>(); helper(cs, 0, result, list); return list; } public void helper(char[] cs,int index,char[] result,List<String> list){ if(index==cs.length){ list.add(String.valueOf(result)); return; } if(cs[index]>='0'&&cs[index]<='9'){ result[index]=cs[index]; helper(cs, index+1, result, list); } else if(cs[index]>='a'&&cs[index]<='z'){ result[index]=cs[index]; helper(cs, index+1, result, list); result[index]=(char) (cs[index]-'a'+'A'); helper(cs, index+1, result, list); } else if(cs[index]>='A'&&cs[index]<='Z'){ result[index]=cs[index]; helper(cs, index+1, result, list); result[index]=(char) (cs[index]-'A'+'a'); helper(cs, index+1, result, list); } } public static void main(String[] args) { // TODO Auto-generated method stub Letter_Case_Permutation_784 l=new Letter_Case_Permutation_784(); List<String> list=l.letterCasePermutation("a1b2"); for(String s:list){ System.out.println(s); } } }
