leetcode748

public class Solution
    {
        public string ShortestCompletingWord(string licensePlate, string[] words)
        {
            var list = words.OrderBy(x => x.Length);
            var pattern = licensePlate.ToLower();
            var dic = new Dictionary<char, int>();
            foreach (var p in pattern)
            {
                if (p >= 97 && p <= 122)
                {
                    if (!dic.ContainsKey(p))
                    {
                        dic.Add(p, 1);
                    }
                    else
                    {
                        dic[p]++;
                    }
                }
            }

            foreach (var word in list)
            {
                bool find = true;
                var dic2 = new Dictionary<char, int>();
                foreach (var p in word)
                {
                    if (!dic2.ContainsKey(p))
                    {
                        dic2.Add(p, 1);
                    }
                    else
                    {
                        dic2[p]++;
                    }
                }

                foreach (var d in dic)
                {
                    if (!dic2.ContainsKey(d.Key) || dic2[d.Key] < dic[d.Key])
                    {
                        find = false;
                        break;
                    }
                }
                if (find)
                {
                    return word;
                }
            }

            return "";
        }
    }
原文地址:https://www.cnblogs.com/asenyang/p/9826252.html