最长单词

来源:互联网 发布:决策支持软件 编辑:程序博客网 时间:2024/05/18 01:26

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

样例

在词典

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

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

在词典

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

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

挑战 

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


思路: 一遍扫描,现将第一个字符串加入list,并记录该长度为最大长度,然后只要与该长度相等,就直接加入数组,若当前字符串长度比当前最大长度大,清空list,将当前字符串加入,更新最大长度,不断重复这个过程
ArrayList<String> longestWords(String[] dictionary) {        ArrayList<String> lists = new ArrayList<>();        int maxLen = 0;        for (int i = 0; i < dictionary.length; i++) {            String str = dictionary[i];            if (str.length() > maxLen) {                lists.clear();                maxLen = str.length();                lists.add(str);            } else if (str.length() == maxLen) {                lists.add(str);            }        }        return lists;    }

原创粉丝点击