using
System;
using
System.Collections.Generic;
class
GFG{
private
static
void
maxMatchingChar(List<String> list,
int
n,
char
[]ch)
{
String val =
""
;
int
maxVal =
int
.MinValue;
foreach
(String s
in
list)
{
int
matchingchar = matchingChar(
s.ToLower(), ch);
if
(matchingchar > maxVal)
{
maxVal = matchingchar;
val = s;
}
}
Console.Write(val +
" "
);
}
private
static
int
matchingChar(String s,
char
[] ch)
{
int
freq = 0, c = ch.Length;
for
(
int
i = 0; i < c; i++)
{
if
(s.Contains(String.Join(
""
, ch[i])))
{
freq++;
}
}
return
freq;
}
private
static
char
[] removeDuplicate(String str)
{
HashSet<
char
>
set
=
new
HashSet<
char
>();
int
c = str.Length;
for
(
int
i = 0; i < c; i++)
{
set
.Add(str[i]);
}
char
[]arr =
new
char
[
set
.Count];
int
index = 0;
foreach
(
char
s
in
set
)
{
arr[index] = s;
index++;
}
return
arr;
}
public
static
void
Main(String[] args)
{
int
n = 3;
String str =
"Vikas"
;
String []D = {
"preeti"
,
"khusbu"
,
"katherina"
};
char
[]ch = removeDuplicate(str.ToLower());
List<String> list =
new
List<String>();
for
(
int
i = 0; i < n; i++)
{
list.Add(D[i]);
}
maxMatchingChar(list, n, ch);
}
}