最長單詞(一星級題目) 原本是很簡單的,其實就是加個flag

隨機了一個題目:google

  給一個詞典,找出其中全部最長的單詞。 spa

這道題對於初學者仍是頗有用的,畢竟用的邏輯是比較複雜的code

樣例對象

在詞典blog

{
  "dog",
  "google",
  "facebook",
  "internationalization",
  "blabla"
}

中, 最長的單詞集合爲 ["internationalization"]rem

在詞典字符串

{
  "like",
  "love",
  "hate",
  "yes"
}

中,最長的單詞集合爲 ["like", "love", "hate"]io

 

首先:  新建一個main方法class

 1 public class charSolution {
 2 
 3     public static void main(String[] args) {
 4         String[] strs={
 5                   "like",
 6                   "love",
 7                   "hate",
 8                   "yes",
 9                   "ssss"
10                 };
11         ArrayList<String> strss=longestWords(strs);
12         
13         for(String s:strss){
14             System.out.println(s);
15         }
16     }
17

再者:咱們要作的就是一個邏輯了泛型

1.先立一個flag,在這邊咱們就用字符串的長度,默認設置int longs=0;

2.作邏輯,循環咱們的list,判斷泛型String的長度,和longs對比

  2.1 相等,把String對象存進list集合

  2.2 大於longs,把list集合全部對象清除,並把當前對象存進集合

  2.3 小於longs,不作操做

3.return list

 1 public static ArrayList<String> longestWords(String[] dictionary) {
 2         
 3         List<String> strs=new ArrayList<String>();
 4         int longs=0;
 5         for(int i=0;i<dictionary.length;i++){
 6             if(i==0){
 7                 strs.add(dictionary[i]);
 8                 longs=dictionary[i].length();
 9             }else{
10                 if(dictionary[i].length()==longs){
11                     strs.add(dictionary[i]);
12                 }else if(dictionary[i].length()>longs){
13                     strs.removeAll(strs);
14                     strs.add(dictionary[i]);
15                     longs=dictionary[i].length();
16                 }
17             }
18         }
19         return (ArrayList<String>)strs;
20     }

對於咱們這樣的新手,常常性忘記就是立flag,這個能夠解決不少問題,其實最經典的就是獲取質數的程序。

相關文章
相關標籤/搜索