今天去面試時考了兩個演算法的題,自己在做時想複雜了,也怪自己對FrameWork框架不是太熟悉,有很多方法自己不知道,所以走了很彎路
題目如下:
//去除重複演算法:輸入一串字元如 ababef 將這串字串去除重複部分得到如下結果 abef string str = Console.ReadLine(); var arryStr = str.ToCharArray(); var list = new List<char>();
foreach (var item in arryStr)
{ if (!list.Contains(item)) { list.Add(item); } } foreach (var item in list) { Console.WriteLine(item); }
//用Distinct()更簡捷 直接得到結果 arryStr.Distinct();
題二
//統計重複字串 如 eeefffkkkhjk 得到如下結果 3e3f3khjk; string zipStr = Console.ReadLine(); var charList = zipStr.ToCharArray(); var listArray = new List<char>(); foreach (var item in charList) { if (!listArray.Contains(item)) { listArray.Add(item); } } var dic = new Dictionary<string, string>(); int count = 0; foreach (var item in listArray) { foreach (var o in charList) { if (item == o) { count++; } } dic.Add(item.ToString(),count.ToString()); count = 0; } string resutl = string.Empty; foreach (var item in dic) { if (Convert.ToInt32(item.Value)<=1) { resutl += item.Key; } else { resutl += item.Key + item.Value; } } Console.WriteLine(resutl); Console.Read();
自己想想其實很簡單,說到底還是自己練得太少了,面試還是有好處的,能讓你清楚的明白你自己的什麼樣的水平,
不要停止學習的腳步,努力向上吧~~!