Hackerrank - Two Strings Solution
Given two strings, determine if they share a common substring. A substring may be as small as one character.
For example, the words "a", "and", "art" share the common substring . The words "be" and "cat" do not share a substring.
Function Description
Complete the function twoStrings in the editor below. It should return a string, either YES
or NO
based on whether the strings share a common substring.
twoStrings has the following parameter(s):
- s1, s2: two strings to analyze .
Input Format
The first line contains a single integer , the number of test cases.
The following pairs of lines are as follows:
- The first line contains string .
- The second line contains string .
Constraints
- and consist of characters in the range ascii[a-z].
Output Format
For each pair of strings, return YES
or NO
.
Sample Input
2
hello
world
hi
world
Sample Output
YES
NO
Explanation
We have pairs to check:
- s1= "hello", s2="world" . The substrings "o" and "l" are common to both strings.
- a="hi", b="world" . a and b share no common substrings.
Solution in Python
def twoStrings(s1, s2):
return "YES" if set(s1) & set(s2) else "NO"
for _ in range(int(input())):
print(twoStrings(input(), input()))
We can also write as follows
def twoStrings(s1, s2):
if set(s1) & set(s2):
return "YES"
else:
return "NO"
for _ in range(int(input())):
print(twoStrings(input(), input()))
Solution Explanation
First, we convert both s1 and s2 as sets, so that we can apply set operations.
Now to get the common elements between s1 and s2. We just have to use a set intersection.
We can write set intersection, where a and b are two sets, in python as
a & b
or we can write it as follows
a.intersection(b)