Given two strings X and Y, and two values costX and costY. We need to find minimum cost required to make the given two strings identical. We can delete characters from both the strings. The cost of deleting a character from string X is costX and from Y is costY. Cost of removing all characters from a string is same.
Input : X = "abcd", Y = "acdb", costX = 10, costY = 20. Output: 30 For Making both strings identical we have to delete character 'b' from both the string, hence cost will be = 10 + 20 = 30. Input : X = "ef", Y = "gh", costX = 10, costY = 20. Output: 60 For making both strings identical, we have to delete 2-2 characters from both the strings, hence cost will be = 10 + 10 + 20 + 20 = 60.
This problem is a variation of Longest Common Subsequence ( LCS ). The idea is simple, we first find the length of longest common subsequence of strings X and Y. Now subtracting len_LCS with lengths of individual strings gives us number of characters to be removed to make them identical.
// Cost of making two strings identical is SUM of following two // 1) Cost of removing extra characters (other than LCS) // from X // 2) Cost of removing extra characters (other than LCS) // from Y Minimum Cost to make strings identical = costX * (m - len_LCS) + costY * (n - len_LCS). m ==> Length of string X m ==> Length of string Y len_LCS ==> Length of LCS Of X and Y. costX ==> Cost of removing a character from X costY ==> Cost of removing a character from Y Note that cost of removing all characters from a string is same.
Below is the implementation of above idea.
Minimum Cost to make two strings identical is = 60
This article is contributed by Shashank Mishra ( Gullu ). This article is reviwed by team geeksforgeeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Minimum cost to make two strings identical by deleting the digits
- Minimum Number of Manipulations required to make two Strings Anagram Without Deletion of Character
- Remove minimum number of characters so that two strings become anagram
- Count digit groupings of a number with given constraints
- Find number of times a string occurs as a subsequence in given string
- Find k'th character of decrypted string
- Find all combinations of k-bit numbers with n bits set where 1 <= n <= k in sorted order
- Find all strings that match specific pattern in a dictionary
- Find Jobs involved in Weighted Job Scheduling
- Printing Maximum Sum Increasing Subsequence
- Minimum Initial Points to Reach Destination
- Transform One String to Another using Minimum Number of Given Operation
- Lexicographic rank of a string
- Edit Distance | DP-5
- Longest Common Subsequence | DP-4