PROBLEM 58: Prefix Suffix String
(For best view experience, view in windows version)
Problem Reference : GeeksForGeeks
Author : Ajay ZadDate : 21/04/2023
Given two Lists of strings s1 and s2, you have to count the number of strings in s2 which is either a suffix or prefix of at least one string of s1.
Example 1:
Input:
s1 = ["cat", "catanddog", "lion"]
s2 = ["cat", "dog", "rat"]
Output:
2
Explanation:
String "cat" of s2 is prefix of "catanddog"
& string "dog" of s2 is suffix of "catanddog"
Example 2:
Input:
s1 = ["jrjiml", "tchetn", "ucrhye", "ynayhy",
"cuhffd", "cvgpoiu", "znyadv"]
s2 = ["jr", "ml", "cvgpoi", "gpoiu", "wnmkmluc",
"geheqe", "uglxagyl", "uyxdroj"]
Output:
4
Explanation:
String "jr" of s2 is prefix of "jrjiml",
"ml" of s2 is suffix of "jrjiml",
"cvgpoi" of s2 is prefix of "cvgpoiu" &
"gpoiu" of s2 is suffix of "cvgpoiu"
SOLUTION:
class Solution:
def prefixSuffixString(self, s1, s2) -> int:
#code here
cnt = 0
for i in s1:
for j in s2:
if i != j:
if j == i[:len(j)]:
cnt = cnt + 1
h = len(i) - len(i[:len(j)])
if j == i[h:]:
cnt = cnt + 1
return(cnt)if __name__=="__main__":
for _ in range(int(input())):
s1 = list(map(str, input().split()))
s2 = list(map(str, input().split()))
obj=Solution()
print(obj.prefixSuffixString(s1, s2))
Expected Time Complexity: O(max(len(s1) , len(s2) ))
Expected Space Complexity: O(1)
Constraints:
1 <= s1,s2 < 5 * 10^3
5 <= len(s1[i]), len(s2[i]) < 25
Given two Lists of strings s1 and s2, you have to count the number of strings in s2 which is either a suffix or prefix of at least one string of s1.
Example 1:
Input: s1 = ["cat", "catanddog", "lion"] s2 = ["cat", "dog", "rat"] Output: 2 Explanation: String "cat" of s2 is prefix of "catanddog" & string "dog" of s2 is suffix of "catanddog"
Example 2:
Input: s1 = ["jrjiml", "tchetn", "ucrhye", "ynayhy", "cuhffd", "cvgpoiu", "znyadv"] s2 = ["jr", "ml", "cvgpoi", "gpoiu", "wnmkmluc", "geheqe", "uglxagyl", "uyxdroj"] Output: 4 Explanation: String "jr" of s2 is prefix of "jrjiml", "ml" of s2 is suffix of "jrjiml", "cvgpoi" of s2 is prefix of "cvgpoiu" & "gpoiu" of s2 is suffix of "cvgpoiu"
SOLUTION:
class Solution:
def prefixSuffixString(self, s1, s2) -> int:
#code here
cnt = 0
for i in s1:
for j in s2:
if i != j:
if j == i[:len(j)]:
cnt = cnt + 1
h = len(i) - len(i[:len(j)])
if j == i[h:]:
cnt = cnt + 1
return(cnt)
def prefixSuffixString(self, s1, s2) -> int:
#code here
cnt = 0
for i in s1:
for j in s2:
if i != j:
if j == i[:len(j)]:
cnt = cnt + 1
h = len(i) - len(i[:len(j)])
if j == i[h:]:
cnt = cnt + 1
return(cnt)
if __name__=="__main__":
for _ in range(int(input())):
s1 = list(map(str, input().split()))
s2 = list(map(str, input().split()))
obj=Solution()
print(obj.prefixSuffixString(s1, s2))
for _ in range(int(input())):
s1 = list(map(str, input().split()))
s2 = list(map(str, input().split()))
obj=Solution()
print(obj.prefixSuffixString(s1, s2))
Expected Time Complexity: O(max(len(s1) , len(s2) ))
Expected Space Complexity: O(1)
Constraints:
1 <= s1,s2 < 5 * 10^3
5 <= len(s1[i]), len(s2[i]) < 25
No comments:
Post a Comment