# 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)
```