最长单词(一星级题目) 原本是很简单的,其实就是加个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,这个能够解决不少问题,其实最经典的就是获取质数的程序。

相关文章
相关标签/搜索