最长单词
给一个词典,找出其中所有最长的单词。
在词典
{
"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 a=new ArrayList();
int max=dictionary[0].length();
for(int i=0;i<dictionary.length;i++){
if(dictionary[i].length()>max){
max=dictionary[i].length(); //找出最长的字符串
}
}
for(int i=0;i<dictionary.length;i++){
if(dictionary[i].length()==max){ //将等于最长字符串的字符串添加到数组
a.add(dictionary[i]);
}
}
return a;
}
};
一次遍历:
class Solution {
/**
* @param dictionary: an array of strings
* @return: an arraylist of strings
*/
ArrayList<String> longestWords(String[] dictionary) {
// write your code here
ArrayList a=new ArrayList();
int x=dictionary[0].length(); //第一个字符串用于比较
a.add(dictionary[0]); //将第一个字符串加入到数组
for(int i=1;i<dictionary.length;i++){
if(dictionary[i].length()==x){ //与用于比较的字符串比较,若相等则加入到数组
a.add(dictionary[i]);
}else if(dictionary[i].length()>x){ //如果大于用于比较的字符串,将当前字符换把用于
//比较的字符串置换,然后清空数组,将此字符串加入数组
x=dictionary[i].length();
a.clear();
a.add(dictionary[i]);
}
}
return a;
}
};