这是我今天面试的一个问题:
"给定一个字符串列表,返回一个只有唯一字符串的列表"
我很好奇Skeet认证的答案是什么.
我自己的答案是
public static Listsans_repeats ( List input ) { Dictoinary counter = new Dictionary (); List output = new List (); foreach ( string S in input ) { if ( counter.HasKey(S) ) counter[S] = 1; else ++count[S]; } foreach ( KeyValuePair entry in counter ) if ( entry.Value == 1 ) output.Add(entry.Key); return output; }
和采访说
"嗯,这是一种方法......"
在一个听起来居高临下的声音中,好像我做错了什么.
它有什么逻辑错误吗?
有没有办法实现更高内存和处理效率的解决方案?
面试官是否可能正在寻找LINQ-esque解决方案?他为什么不喜欢我的?
有没有办法让这个更紧凑?
shree.pat18.. 6
基于更新的问题,这是LINQ的一种方式:
var src = new List() { "dog", "cat", "elephant", "dog", "dog" } ; src.GroupBy(x => x).Where(y => y.Count() == 1).ToList();
演示
基于更新的问题,这是LINQ的一种方式:
var src = new List() { "dog", "cat", "elephant", "dog", "dog" } ; src.GroupBy(x => x).Where(y => y.Count() == 1).ToList();
演示