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 longestWords(String[] dictionary) {
        // write your code here
        ArrayList res = new ArrayList<>();
        
        int len = 0;
        
        for(int i=0;i= 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 longestWords(String[] dictionary) {
        // write your code here
        int maxLen = 0;
        ArrayList ans = new ArrayList();
        for (int i=0; imaxLen) maxLen = dictionary[i].length();
        for (int i=0; i

你可能感兴趣的:(LintCode 最长单词)