面試題目 字串的去重與壓縮(統計)

Zery發表於2013-08-17

  今天去面試時考了兩個演算法的題,自己在做時想複雜了,也怪自己對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();

 

自己想想其實很簡單,說到底還是自己練得太少了,面試還是有好處的,能讓你清楚的明白你自己的什麼樣的水平,

不要停止學習的腳步,努力向上吧~~!

  

相關文章