Вот решение:
с использованием System;
с использованием System.Collections.Generic;
использование System.Linq;
открытый класс AnagramSearch
{
Код: Выделить всё
public static List GetSearchResults(List words, List queries)
{
Dictionary anagrams = new Dictionary();
// Creating a dictionary of sorted words and their original words
foreach (string word in words)
{
char[] letters = word.ToCharArray();
Array.Sort(letters);
string sortedWord = new string(letters);
if (!anagrams.ContainsKey(sortedWord))
{
anagrams[sortedWord] = new List();
}
anagrams[sortedWord].Add(word);
}
List results = new List();
// Searching for anagrams of queries
foreach (string query in queries)
{
char[] letters = query.ToCharArray();
Array.Sort(letters);
string sortedQuery = new string(letters);
if (anagrams.ContainsKey(sortedQuery))
{
List result = anagrams[sortedQuery];
result.Sort();
results.Add(result);
}
else
{
results.Add(new List());
}
}
return results;
}
{
public static void Main(string[] args)
{ TextWriter textWriter = new StreamWriter(@System.Environment.GetEnvironmentVariable("OUTPUT_
PATH"), true);
int wordsCount = Convert.ToInt32(Console.ReadLine().Trim()); List words = new List(); for (int i = 0 j < wordsCount; j++) {
string wordsitem = Console.ReadLine(); words.Add(wordsitem);
} int queries Count Convert.ToInt32(Console.ReadLine().Trim()); List queries = new List(); for int ( i = 0 jString.Join(^ prime prime ,x)))); textWriter Flush();
}
textWriter.Close();
}
}
Источник: https://stackoverflow.com/questions/781 ... k-solution
Мобильная версия