using System.Collections.Generic;
using System.Diagnostics;
public static void Main()
var s1 = Stopwatch.StartNew();
Console.WriteLine(firstRepeating(testData));
Console.WriteLine("HashSet ====> " + ((double)(s1.Elapsed.TotalMilliseconds * 1000000) /testData.Count()).ToString("0.00 ns"));
public static char firstRepeating(string str)
HashSet<char> h = new HashSet<char>();
char[] charArray = str.ToCharArray();
for (int i = 0; i <= charArray.Length - 1; i++)
public static char FirstRepeatingLetter(string str)
Dictionary<char, int> charFrequencyDic = new Dictionary<char, int>();
char[] charArray = str.ToCharArray();
for (int i = 0; i < charArray.Length; i++)
if(!charFrequencyDic.ContainsKey(charArray[i]))
charFrequencyDic.Add(charArray[i],1);
charFrequencyDic[charArray[i]]+=1;
var query = charFrequencyDic.Where(r => r.Value > 1).Select(r => r.Key);
public static char FirstRepeatingLetter1(string str)
char[] charArray = str.ToCharArray();
for (int i = 0; i < charArray.Length; i++)
if (str.Substring(j).Contains(charArray[i].ToString()))