您的位置:首页 > 其它

lintcode 133 最长单词

2017-10-11 09:03 225 查看
给一个词典,找出其中所有最长的单词。

您在真实的面试中是否遇到过这个题? 

Yes

样例

在词典
{
"dog",
"google",
"facebook",
"internationalization",
"blabla"
}

中, 最长的单词集合为 
["internationalization"]

在词典
{
"like",
"love",
"hate",
"yes"
}

中,最长的单词集合为 
["like", "love",
"hate"]

public class Solution {

    /*

     * @param dictionary: an array of strings

     * @return: an arraylist of strings

     */

    public ArrayList<String> longestWords(String[] dictionary) {

        // write your code here

        int max = dictionary[0].length();//假定数组第一个长度最大
    ArrayList<String> list = new  ArrayList<String>();
        for(int i=0;i<dictionary.length;i++){
            if(dictionary[i].length() >= max){
                max = dictionary[i].length();//循环找出数组中最长单词的长度
            }
        }
        
        for(int j = 0;j < dictionary.length;j++){
            if(dictionary[j].length() == max ){
             list.add(dictionary[j]); //循环找出数组中单词长度为max的单词,并放入list中
            }
        }
        return list;
    }

}

挑战 


遍历两次的办法很容易想到,如果只遍历一次你有没有什么好办法?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: