最长单词
题目
给一个词典,找出其中所有最长的单词。
样例
在词典
中, 最长的单词集合为 [“internationalization”]在词典
中,最长的单词集合为 [“like”, “love”, “hate”]挑战
遍历两次的办法很容易想到,如果只遍历一次你有没有什么好办法?
题解
先将第一个单词加入列表,然后进行遍历,遇到长度相等的单词则加入列表,遇到长度更大的将列表清空后加入该单词。
class Solution {
/**
* @param dictionary: an array of strings
* @return: an arraylist of strings
*/
ArrayList<String> longestWords(String[] dictionary) {
int n = dictionary.length;
ArrayList<String> result = new ArrayList<>();
result.add(dictionary[0]);
for (int i=1;i<n;i++)
{
if (dictionary[i].length() == result.get(0).length())
{
result.add(dictionary[i]);
}
else if (dictionary[i].length() > result.get(0).length())
{
result.clear();
result.add(dictionary[i]);
}
}
return result;
}
};
Last Update 2016.9.6