在詞典
{
"dog",
"google",
"facebook",
"internationalization",
"blabla"
}
中, 最長的單詞集合爲 ["internationalization"]
在詞典
{
"like",
"love",
"hate",
"yes"
}
中,最長的單詞集合爲 ["like", "love", "hate"]
代碼如下
ArrayList<String> longestWords(String[] dictionary) {
// write your code here
ArrayList<String> list = new ArrayList<String>();
int i=0,j=0,a=0;
j=dictionary[0].length();
list.add(dictionary[0]);
for(i=0;i<dictionary.length-1;i++){
if (j==dictionary[i+1].length()) {
list.add(dictionary[i+1]);
}
if (j<dictionary[i+1].length()) {
j=dictionary[i+1].length();
list.removeAll(list);
list.add(dictionary[i+1]);
}
}
return list;
}
寫的有些繁瑣,但通俗易懂。
首先將第一個dictionary中的元素加入到list中,後判斷dictionary後面的元素的長度是否的第一個長度相等,如果相等則繼續加入。然後在一個判斷dictionary後面的元素是否比前面的大,如果大就清空前面list中的內容後繼續加入list。