LintCode 最长单词

题目

给一个词典,找出其中所有最长的单词。

样例
在词典
{ "dog", "google", "facebook", "internationalization", "blabla"}中, 最长的单词集合为 ["internationalization"]

在词典
{ "like", "love", "hate", "yes"}中,最长的单词集合为 ["like", "love", "hate"]

分析

这里有两种方法,最简单的就是先遍历一遍,找到最大的,再遍历一遍,找到最大的长度的所有单词
第二种方法就是再遍历的同时记录最大的和最大长度的所有单词

代码

class Solution {
    /**
     * @param dictionary: an array of strings
     * @return: an arraylist of strings
     */
    ArrayList<String> longestWords(String[] dictionary) {
        // write your code here
        ArrayList<String> res = new ArrayList<>();
        
        int len = 0;
        
        for(int i=0;i<dictionary.length;i++)
        {
            if(dictionary[i].length() >= len)
            {
                if(dictionary[i].length() > len)
                {
                    res.clear();
                    len = dictionary[i].length();
                }
                res.add(dictionary[i]);
            }
        }
        
        return res;
    }
};
class Solution {
    /**
     * @param dictionary: an array of strings
     * @return: an arraylist of strings
     */
    ArrayList<String> longestWords(String[] dictionary) {
        // write your code here
        int maxLen = 0;
        ArrayList<String> ans = new ArrayList<String>();
        for (int i=0; i<dictionary.length; ++i) 
            if (dictionary[i].length()>maxLen) maxLen = dictionary[i].length();
        for (int i=0; i<dictionary.length; ++i)
            if (dictionary[i].length()==maxLen) ans.add(dictionary[i]);
        return ans;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容