检查两个给定字符串中是否有共同的字符
原文:https://www . geesforgeks . org/check-if-any-common-in-two-given-string/
给定两个字符串。任务是检查两个字符串之间是否有任何共同的字符。
示例:
Input: s1 = "geeksforgeeks", s2 = "geeks"
Output: Yes
Input: s1 = "geeks", s2 = "for"
Output: No
方法:遍历第一个字符串,将字符串的字符与其频率进行映射,在该映射中,字符充当键,频率作为其值。然后遍历第二个字符串,我们将检查两个字符串中是否有任何字符,然后确认有一个公共的子序列。
下面是上述方法的实现:
C++
// C++ implementation of above approach
#include <bits/stdc++.h>
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<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 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 */
Python 3
# 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
java 描述语言
<script>
// Javascript implementation of above approach
// Function to match character
function 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 strings
var s1 = "geeksforgeeks", s2 = "geeks";
// Find if there is a common subsequence
var yes_or_no = check(s1, s2);
if (yes_or_no)
document.write( "Yes");
else
document.write( "No" );
</script>
Output:
Yes
时间复杂度: O(n)其中 n 是弦的长度
版权属于:月萌API www.moonapi.com,转载请注明出处