Check if there is any common character in two given strings

Given two strings. The task is to check that is there any common character in between two strings.

Examples:

```Input: s1 = "geeksforgeeks", s2 = "geeks"
Output: Yes

Input: s1 = "geeks", s2 = "for"
Output: No
```

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Traverse the 1st string and map the characters of the string with its frequency, in this map characters act as a key and the frequency its value. Then traverse the second string and we will check if there is any character that is present in both the string then it is confirmed that there is a common sub-sequence.

Below is the implementation of above approach:

 `// C++ implementation of above approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function to match character ` `bool` `check(string s1, string s2) ` `{ ` `    ``// Create a map to map ` `    ``// characters of 1st string ` `    ``map<``char``, ``int``> map; ` ` `  `    ``// traverse the first string ` `    ``// and create a hash map ` `    ``for` `(``int` `i = 0; i < s1.length(); i++) ` `        ``map[s1[i]]++; ` ` `  `    ``// traverse the second string ` `    ``// and if there is any ` `    ``// common character than return 1 ` `    ``for` `(``int` `i = 0; i < s2.length(); i++) ` `        ``if` `(map[s2[i]] > 0) ` `            ``return` `true``; ` ` `  `    ``// else return 0 ` `    ``return` `false``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``// Declare two strings ` `    ``string s1 = ``"geeksforgeeks"``, s2 = ``"geeks"``; ` ` `  `    ``// Find if there is a common subsequence ` `    ``bool` `yes_or_no = check(s1, s2); ` ` `  `    ``if` `(yes_or_no == ``true``) ` `        ``cout << ``"Yes"` `<< endl; ` ` `  `    ``else` `        ``cout << ``"No"` `<< endl; ` ` `  `    ``return` `0; ` `} `

 `// Java implementation of above approach ` `import` `java.util.*; ` ` `  `class` `GFG  ` `{ ` ` `  `// Function to match character  ` `static` `boolean` `check(String s1, String s2)  ` `{ ` `    ``// Create a map to map  ` `    ``// characters of 1st string  ` `    ``Map mp = ``new` `HashMap<>(); ` ` `  `    ``// traverse the first string  ` `    ``// and create a hash map  ` `    ``for` `(``int` `i = ``0``; i < s1.length(); i++) ` `    ``{ ` `        ``mp.put(s1.charAt(i), mp.get(s1.charAt(i)) == ``null` `? ``1` `: mp.get(s1.charAt(i)) + ``1``); ` `    ``} ` ` `  `    ``// traverse the second string  ` `    ``// and if there is any  ` `    ``// common character than return 1  ` `    ``for` `(``int` `i = ``0``; i < s2.length(); i++)  ` `    ``{ ` `        ``if` `(mp.get(s2.charAt(i)) > ``0``)  ` `        ``{ ` `            ``return` `true``; ` `        ``} ` `    ``} ` ` `  `    ``// else return 0  ` `    ``return` `false``; ` `} ` ` `  `// Driver code  ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``// Declare two strings  ` `    ``String s1 = ``"geeksforgeeks"``, s2 = ``"geeks"``; ` ` `  `    ``// Find if there is a common subsequence  ` `    ``boolean` `yes_or_no = check(s1, s2); ` ` `  `    ``if` `(yes_or_no == ``true``) ` `    ``{ ` `        ``System.out.println(``"Yes"``); ` `    ``}  ` `    ``else` `    ``{ ` `        ``System.out.println(``"No"``); ` `    ``} ` `} ` `} ` ` `  `/* This code contributed by PrinciRaj1992 */`

 `# Python3 program to check whether  ` `# two lists are overlaping or not ` `def` `is_member(``List``, key): ` ` `  `    ``for` `i ``in` `range``(``0``, ``len``(``List``)): ` `        ``if` `key ``=``=` `List``[i]: ` `            ``return` `True` `    ``return` `False` ` `  `def` `overlap(List1 , List2): ` ` `  `    ``for` `key ``in` `List1: ` `        ``if` `is_member( List2, key ): ` `            ``return` `True` ` `  `    ``return` `False` ` `  `# Driver Code ` `if` `__name__ ``=``=` `'__main__'``: ` ` `  `    ``s1 ``=` `'geeksforgeeks'` `    ``s2 ``=` `'geeks'` ` `  `    ``List1 ``=` `list``( s1 ) ` `    ``List2 ``=` `list``( s2 ) ` ` `  `    ``yes_or_no ``=` `str``(overlap( List1, List2 )) ` `     `  `    ``if` `(yes_or_no): ` `        ``print``(``"Yes"``) ` `    ``else``: ` `        ``print``(``"No"``) ` ` `  `# This code is contributed  ` `# by Krishna_Yadav `

 `// C# program to check if successive  ` `// pair of numbers in the queue are  ` `// consecutive or not  ` `using` `System; ` `using` `System.Collections.Generic; ` ` `  `class` `GFG  ` `{ ` ` `  `// Function to match character  ` `static` `Boolean check(String s1, String s2)  ` `{ ` `    ``// Create a map to map  ` `    ``// characters of 1st string  ` `    ``Dictionary<``char``,``int``> mp = ``new` `Dictionary<``char``,``int``>(); ` ` `  `    ``// traverse the first string  ` `    ``// and create a hash map  ` `    ``for` `(``int` `i = 0; i < s1.Length; i++) ` `    ``{ ` `        ``if``(mp.ContainsKey(s1[i])) ` `        ``{ ` `            ``var` `val = mp[s1[i]]; ` `            ``mp.Remove(s1[i]); ` `            ``mp.Add(s1[i], val + 1);  ` `        ``} ` `        ``else` `        ``{ ` `            ``mp.Add(s1[i], 1); ` `        ``} ` `    ``} ` ` `  `    ``// traverse the second string  ` `    ``// and if there is any  ` `    ``// common character than return 1  ` `    ``for` `(``int` `i = 0; i < s2.Length; i++)  ` `    ``{ ` `        ``if` `(mp[s2[i]] > 0)  ` `        ``{ ` `            ``return` `true``; ` `        ``} ` `    ``} ` ` `  `    ``// else return 0  ` `    ``return` `false``; ` `} ` ` `  `// Driver code  ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``// Declare two strings  ` `    ``String s1 = ``"geeksforgeeks"``, s2 = ``"geeks"``; ` ` `  `    ``// Find if there is a common subsequence  ` `    ``Boolean yes_or_no = check(s1, s2); ` ` `  `    ``if` `(yes_or_no == ``true``) ` `    ``{ ` `        ``Console.WriteLine(``"Yes"``); ` `    ``}  ` `    ``else` `    ``{ ` `        ``Console.WriteLine(``"No"``); ` `    ``} ` `} ` `} ` ` `  `// This code contributed by Rajput-Ji `

Output:
```Yes
```

Time Complexity: O(n) where n is the length of the string

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Third year Department of Information Technology Jadavpur University

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :