给一个词典,找出其中所有最长的单词。
样例
在词典
{
"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> result = new ArrayList<String>();
if(dictionary.length == 0){
return result;
}
int len = dictionary[0].length();
result.add(dictionary[0]);
for( int i = 1;i < dictionary.length ; i++){
String tmp = dictionary[i];
if( tmp.length() == len){
result.add(tmp);
}else if(tmp.length() > len){
result.clear();
result.add(tmp);
len = tmp.length();
}
}
return result;
}
};