LintCode 最长单词

来源:互联网 发布:js 模糊毛玻璃效果 编辑:程序博客网 时间:2024/05/14 07:01

题目:

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

样例

在词典

{  "dog",  "google",  "facebook",  "internationalization",  "blabla"}

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

在词典

{  "like",  "love",  "hate",  "yes"}

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

挑战

遍历两次的办法很容易想到,如果只遍历一次你有没有什么好办法?



代码:

给出只遍历一次的做法:

 ArrayList<String> longestWords(String[] dictionary) {        // write your code here        if (dictionary == null || dictionary.length == 0)return new ArrayList();ArrayList<String> array = new ArrayList<String>();array.add(dictionary[0]);int maxnum = array.get(0).length();for (int i = 1; i < dictionary.length; i++) {if (dictionary[i].length() == maxnum)array.add(dictionary[i]);else if (dictionary[i].length() > maxnum) {maxnum = dictionary[i].length();array = new ArrayList<String>();array.add(dictionary[i]);}}return array;    }




0 0
原创粉丝点击