面试题目 字符串的去重与压缩(统计)

  今天去面试时考了两个算法的题,自己在做时想复杂了,也怪自己对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();

自己想想其实很简单,说到底还是自己练得太少了,面试还是有好处的,能让你清楚的明白你自己的什么样的水平,

不要停止学习的脚步,努力向上吧~~!

  

原文地址:https://www.cnblogs.com/zery/p/3264247.html