Letter Case Permutation LeetCode Solution - The Coding Shala
Home >> LeetCode >> Letter Case Permutation
Other Posts You May Like
In this post, we will learn how to solve LeetCode's Letter Case Permutation Problem and will implement its solution in Java.
Letter Case Permutation Problem
Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string.
Example 1:
Input: S = "a1b2"
Output: ["a1b2","a1B2","A1b2","A1B2"]
Example 2:
Input: S = "3z4"
Output: ["3z4","3Z4"]
Example 3:
Input: S = "12345"
Output: ["12345"]
LeetCode - Letter Case Permutation Java Solution
Approach 1
Finding all the possible strings. (iterative solution)
Java Program:
class Solution { public List<String> letterCasePermutation(String S) { List<String> res = new ArrayList<>(); res.add(S); for(int i=0; i<S.length(); i++) { if((S.charAt(i) >= 'a' && S.charAt(i) <= 'z') || (S.charAt(i) >= 'A' && S.charAt(i) <= 'Z')) { char ch = S.charAt(i); String str = ""; if(S.charAt(i) >= 'a' && S.charAt(i) <= 'z') { str = Character.toString(ch).toUpperCase(); } if(S.charAt(i) >= 'A' && S.charAt(i) <= 'Z') { str = Character.toString(ch).toLowerCase(); } int len = res.size(); for(int j=0; j<len; j++) { String temp = res.get(j); if(i==0) { String newStr = str + temp.substring(1, temp.length()); res.add(newStr); } else if(i == temp.length()-1) { String newStr = temp.substring(0, temp.length()-1) + str; res.add(newStr); } else { String newStr = temp.substring(0, i) + str + temp.substring(i+1, temp.length()); res.add(newStr); } } } } return res; } }
Approach 2
Using Recursion.
Java Program:
class Solution { public void helper(List<String> res, int index, char[] str) { if(index == str.length) { res.add(new String(str)); } else { if(Character.isLetter(str[index])) { str[index] = Character.toUpperCase(str[index]); helper(res, index+1, str); str[index] = Character.toLowerCase(str[index]); } helper(res, index+1, str); } } public List<String> letterCasePermutation(String S) { List<String> res = new ArrayList<>(); helper(res, 0, S.toCharArray()); return res; } }
- LeetCode - Next Greater Element 1
- LeetCode - Running Sum of 1d Array
- LeetCode - Shuffle the Array
- LeetCode - Crawler Log Folder
- LeetCode - Decode XORed Array
Comments
Post a Comment