# Solving Leetcode Interviews in Seconds with AI: Make Three Strings Equal


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "2937" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> You are given three strings: s1, s2, and s3. In one operation you can choose one of these strings and delete its rightmost character. Note that you cannot completely empty a string. Return the minimum number of operations required to make the strings equal. If it is impossible to make them equal, return -1.   Example 1:  Input: s1 = "abc", s2 = "abb", s3 = "ab" Output: 2 Explanation: Deleting the rightmost character from both s1 and s2 will result in three equal strings.  Example 2:  Input: s1 = "dac", s2 = "bac", s3 = "cac" Output: -1 Explanation: Since the first letters of s1 and s2 differ, they cannot be made equal.    Constraints:  1 <= s1.length, s2.length, s3.length <= 100 s1, s2 and s3 consist only of lowercase English letters.  

	# Explanation
	Here's the breakdown of the solution:

*   **Greedy Approach:** Iteratively compare the strings from left to right. If the characters at the current index are the same across all three strings, move to the next index.
*   **Handle Mismatch:** If a mismatch is found at any index, it's impossible to make the strings equal since we can only delete from the right.
*   **Calculate Operations:** If all characters match up to a certain length, the number of operations is the sum of the number of characters deleted from each string to reach that length.

*   **Runtime Complexity:** O(min(len(s1), len(s2), len(s3))) - Linear with respect to the length of the shortest string.
*   **Storage Complexity:** O(1) - Constant space.

	
	# Code
	```python
	def minOperations(s1: str, s2: str, s3: str) -> int:
    """
    Given three strings: s1, s2, and s3. In one operation you can choose one of these
    strings and delete its rightmost character. Note that you cannot completely empty
    a string. Return the minimum number of operations required to make the strings
    equal. If it is impossible to make them equal, return -1.
    """
    n1 = len(s1)
    n2 = len(s2)
    n3 = len(s3)
    
    min_len = min(n1, n2, n3)
    
    common_len = 0
    for i in range(min_len):
        if s1[i] == s2[i] == s3[i]:
            common_len += 1
        else:
            break
            
    if common_len == 0:
        return -1
        
    return n1 - common_len + n2 - common_len + n3 - common_len
	```
			
