【发布时间】:2022-07-12 10:28:13
【问题描述】:
有一组输入字符串和一组查询字符串。对于每个查询字符串,确定它在输入字符串列表中出现的次数。返回结果数组。
功能说明
matchingStrings 函数必须返回一个整数数组,表示字符串中每个查询字符串的出现频率。
matchingStrings 有以下参数:
string strings[n] - 要搜索的字符串数组 字符串查询[q] - 查询字符串数组
退货
int[q]:每个查询的结果数组
解决方案
List<string> strings = new List<string> { "4", "aba", "baba", "aba", "xzxb" };
List<string> queries = new List<string> { "3", "aba", "xzxb", "ab" };
List<int> outputList = Result.matchingStrings(strings, queries);
for (int i = 0; i < outputList.Count; i++)
{
Console.WriteLine(outputList[i]);
}
public class Result
{
public static List<int> matchingStrings(List<string> strings, List<string> queries)
{
int inputCount = 0;
Int32.TryParse(strings[0], out inputCount);
string[] input = strings.GetRange(1, strings.Count - 1).ToArray();
var stringsMap = new Dictionary<string, int>();
for (int i = 0; i < inputCount; i++)
{
if (stringsMap.ContainsKey(input[i]))
{
stringsMap[input[i]]++;
}
else
{
stringsMap.Add(input[i], 1);
}
}
int queryCount = 0;
Int32.TryParse(queries[0], out queryCount);
string[] queryStrings = queries.GetRange(1, queries.Count - 1).ToArray();
int[] output = new int[queryCount];
for (int i = 0; i < queryCount; i++)
{
if (stringsMap.ContainsKey(queryStrings[i]))
{
output[i] = stringsMap[queryStrings[i]];
}
}
List<int> outputList = output.ToList();
return outputList;
}
}
该代码适用于 VS 代码中的给定示例输入。但是,当它插入 HackerRank 在线 IDE 时,它不会返回任何输出。我不明白问题可能是什么。
【问题讨论】:
-
模板解决方案不传递整数作为第一个元素。
-
你可能是对的。我会仔细看看的。谢谢。