class Solution {
private List result = new ArrayList();
public List letterCasePermutation(String S) {
findCombination(S.toCharArray(),0,"");
return result;
}
private void findCombination(char[] data,int index,String str) {
if(index == data.length) {
result.add(str);
return;
}
Character c = data[index];
if(Character.isDigit(c)) {
String str1 = str + c;
findCombination(data, index+1, str1);
}
else {
String str2 = str + Character.toUpperCase(c);
findCombination(data, index+1, str2);
String str3 = str + Character.toLowerCase(c);
findCombination(data, index+1, str3);
}
return;
}
public static void main(String[] args) {
System.out.println(new Solution().letterCasePermutation("a1b2"));
System.out.println(new Solution().letterCasePermutation("3z4"));
System.out.println(new Solution().letterCasePermutation("12345"));
}
}