LintCode133:最長單詞

在詞典

{
  "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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章