Given an array arr[] of strings containing the names of employees in a company. Assuming that the names are being entered in a system one after another, the task is to check whether the current name is entered for the first time or not.
Examples:
Input: arr[] = {“geeks”, “for”, “geeks”}
Output:
No
No
Yes
Approach: Create an
unordered_set to store the names of the employees and start traversing the array, if the current name is already present in the set then print Yes else print No and insert it into the set.
Below is the implementation of the above approach:
#include <bits/stdc++.h>
using namespace std;
void insertNames(string arr[], int n)
{
unordered_set<string> set;
for ( int i = 0; i < n; i++) {
if (set.find(arr[i]) == set.end()) {
cout << "No\n" ;
set.insert(arr[i]);
}
else {
cout << "Yes\n" ;
}
}
}
int main()
{
string arr[] = { "geeks" , "for" , "geeks" };
int n = sizeof (arr) / sizeof (string);
insertNames(arr, n);
return 0;
}
|
import java.util.*;
class GFG
{
static void insertNames(String arr[], int n)
{
HashSet<String> set = new HashSet<String>();
for ( int i = 0 ; i < n; i++)
{
if (!set.contains(arr[i]))
{
System.out.print( "No\n" );
set.add(arr[i]);
}
else
{
System.out.print( "Yes\n" );
}
}
}
public static void main(String[] args)
{
String arr[] = { "geeks" , "for" , "geeks" };
int n = arr.length;
insertNames(arr, n);
}
}
|
def insertNames(arr, n) :
string = set ();
for i in range (n) :
if arr[i] not in string :
print ( "No" );
string.add(arr[i]);
else :
print ( "Yes" );
if __name__ = = "__main__" :
arr = [ "geeks" , "for" , "geeks" ];
n = len (arr);
insertNames(arr, n);
|
Comments
Post a Comment