# Check if there is any common character in two given strings

• Difficulty Level : Medium
• Last Updated : 27 May, 2021

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

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++

 `// 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

 `// 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

 `# Python3 program to check whether``# two lists are overlapping 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#

 `// 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`

## Javascript

 ``
Output:
`Yes`

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

My Personal Notes arrow_drop_up