如果我有一个数组包含一些字符,比如[a,b,c]
,而我有另一个数组包含每个字符的频率,比如[2,1,1]
。现在我想浏览一个链接列表,其中有一些节点有一些字符串,看看它们是否也有我在原始数组中有相同频率的字符。
我的方法
我想我需要
一个循环将在原始数组的index 0
处开始,另一个循环将在其中检查该字符串的所有节点,如果我的临时指针命中空值,则意味着所有节点都有该字符串,如果没有,则它们没有该字符串,我继续下一个循环。然而,我不知道如何完全实现这个方法,因为我对c很陌生,而且我想知道是否有可能在O(N)
时间内实现,因为我的方法是O(N2)。
示例输出:很抱歉造成混淆
如果有3个节点,每个节点都有一个char数组,其中包含"nba" "tba" "rba"
然后输出应返回b a
。因为它们在每个节点中出现的次数相等。
最佳答案
因此,在索引0处启动char数组和freqarray,然后检查所有节点上是否有与字符的相同频率匹配的字符串。我假设您使用某种函数返回字符串中特定字符的频率。
另外,您的问题要求您遍历所有节点,因此隐含O(N^2)。
关于c - 将列表的节点与字符串数组进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26549365/