Check if there is any common character in two given strings - GeeksforGeeks

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++
Java
Python3
C#
Javascript
// C++ implementation of above approach#include <bits/stdc++.h>using namespace std; // Function to match characterbool 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 codeint 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 approachimport java.util.*; class GFG{ // Function to match characterstatic boolean check(String s1, String s2){    // Create a map to map    // characters of 1st string    Map<Character, Integer> 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 codepublic 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 overlapping or notdef 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 Codeif __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 notusing System;using System.Collections.Generic; class GFG{ // Function to match characterstatic 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 codepublic 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
<script> // Javascript implementation of above approach // Function to match characterfunction check( s1, s2){    // Create a map to map    // characters of 1st string    var map = new Map();     // traverse the first string    // and create a hash map    for (var i = 0; i < s1.length; i++)    {        if(map.has(s1[i].charCodeAt(0)))        {            map[s1[i].charCodeAt(0)]++;        }        else        {            map[s1[i].charCodeAt(0)]=1;        }             }     // traverse the second string    // and if there is any    // common character than return 1    for (var i = 0; i < s2.length; i++)        if (map[s2[i].charCodeAt(0)] > 0)            return true;     // else return 0    return false;} // Driver code// Declare two stringsvar s1 = "geeksforgeeks", s2 = "geeks";// Find if there is a common subsequencevar yes_or_no = check(s1, s2);if (yes_or_no)    document.write( "Yes");else    document.write( "No" ); </script>
Yes
 
Time Complexity: O(n) where n is the length of the string 
Krishna_Yadav
princiraj1992
Rajput-Ji
nidhi_biet
rrrtnx
simmytarika5
Hash
Strings
Hash
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Quadratic Probing in Hashing
Load Factor and Rehashing
Implementing own Hash Table with Open Addressing Linear Probing
Advantages of BST over Hash Table
Pairs with same Manhattan and Euclidean distance
Reverse a string in Java
Longest Common Subsequence | DP-4
Write a program to reverse an array or string
Write a program to print all permutations of a given string
C++ Data Types