Description
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
ands3
consist only of lowercase English letters.
Solution
Python3
class Solution:
def findMinimumOperations(self, s1: str, s2: str, s3: str) -> int:
n1, n2, n3 = len(s1), len(s2), len(s3)
common = 0
i = j = k = 0
while i < n1 and j < n2 and k < n3:
if s1[i] == s2[j] == s3[k]:
common += 3
i += 1
j += 1
k += 1
else:
break
if common == 0: return -1
return n1 + n2 + n3 - common