Given two strings s1 and s2(call letters in uppercase). Check if it is possible to convert s1 to s2 by performing following operations.
1. Make some lowercase letters uppercase.
2. Delete all the lowercase letters.
Input : s1 = daBcd s2 = ABC Output : yes Explanation : daBcd -> dABCd -> ABC Covert a and b at index 1 and 3 to upper case, delete the rest those are lowercase. We get the string s2. Input : s1 = argaju s2 = RAJ Output : yes Explanation : argaju -> aRgAJu -> RAJ convert index 1, 3 and 4 to uppercase and then delete. All lowercase letters Input : s1 = ABcd s2= BCD Output : NO
Let DPi, j be 1 if it is possible to convert 1st i characters of s1 to j characters of s2, else DPi, j=0. Close observations gives us two conditions to deal with.
Initially DP0, 0=1, if DPi, j=1 then it is possible to check for next sets using following conditions.
1. If s1[i] in upper case is equal to s2[j] then it is possible to convert i+1 characters of s1 to j+1 characters of s2, hence DPi+1, j+1=1.
2. If s1[i] is in lower case, then it is possible to delete that element and hence i+1 characters can be converted to j characters of s2. Hence DPi+1, j=1.
If DPn, m=1, then it is possible to convert s1 to s2 by following conditions.
Below is the CPP illustration of the above approach.
- Check if any valid sequence is divisible by M
- Longest Uncommon Subsequence
- Maximum difference of zeros and ones in binary string | Set 2 (O(n) time)
- Probability of reaching a point with 2 or 3 steps at a time
- Transform the string
- Maximum subarray sum in an array created after repeated concatenation
- Hosoya's Triangle
- Check if possible to cross the matrix with given power
- Given a large number, check if a subsequence of digits is divisible by 8
- Longest Repeated Subsequence
- Transform One String to Another using Minimum Number of Given Operation
- Optimal Strategy for a Game | DP-31
- An in-place algorithm for String Transformation
- Word Wrap Problem | DP-19
- Edit Distance | DP-5
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.