c# Leetcode720-典中最长的单词(hashset)

如下这种方法能成功,却击败了0.00%,后期我会对写出新的方法

    public string LongestWord(string[] words) {
         var wordsSet = new HashSet<string>();
        var resultSet = new HashSet<string>();
        Array.Sort(words);
        for(var i = 0; i < words.Length; i++) {
            wordsSet.Add(words[i]);
        }
        for(var i = words.Length - 1; i >= 0; i--) {
            if(IsCompleteWord(words[i], wordsSet)) {
                resultSet.Add(words[i]);
            }
        }
        var list = resultSet.OrderByDescending(r => r.Length).ToList();
        return list.Where(r => r.Length == list[0].Length).Min();

 
    }
    private static bool IsCompleteWord(string word, HashSet<string> wordsSet) {
        for(var i = 0; i < word.Length; i++) {
            if(!wordsSet.Contains(word.Substring(0, i + 1))) return false;
        }
        return true;
    } 

新的思路:

后期更新...

猜你喜欢

转载自blog.csdn.net/us2019/article/details/86487445