最长子序列

 1 class Solution {
 2     int max = 0;
 3     String ans="";
 4     public String findLongestWord(String s, List<String> d) {
 5         for(String word:d){
 6             if(judge(s,word)&&max<word.length()){
 7                 max=word.length();
 8                 ans=word;
 9             }
10             
11             if(judge(s,word)&&max==word.length()){
12                 for(int i=0;i<max;i++){
13                     if(ans.charAt(i)==word.charAt(i)){
14                         continue;
15                     }else if(ans.charAt(i)>word.charAt(i)){
16                         ans=word;
17                         break;
18                     }else{
19                         break;
20                     }
21                 }
22                 
23             }
24         }
25         
26         return ans;
27     }
28     
29     public boolean judge(String s,String word){
30         int i=0;
31         int j=0;
32         while(i<s.length()&&j<word.length()){
33             if(s.charAt(i)==word.charAt(j)){
34                 j++;
35             }
36             i++;
37         }
38         if(j==word.length()) return true;
39         return false;
40     }
41 }

也可以用string的compareto直接比较

 1 class Solution {
 2     int max = 0;
 3     String ans="";
 4     public String findLongestWord(String s, List<String> d) {
 5         for(String word:d){
 6             if(judge(s,word)&&max<=word.length()){
 7                 if(max==word.length()&&ans.compareTo(word)>0){
 8                     max=word.length();
 9                     ans=word;
10                     continue;
11                 }
12                 if(max==word.length()) continue;
13                 max=word.length();
14                     ans=word;
15             }
16             
17             
18         }
19         
20         return ans;
21     }
22     
23     public boolean judge(String s,String word){
24         int i=0;
25         int j=0;
26         while(i<s.length()&&j<word.length()){
27             if(s.charAt(i)==word.charAt(j)){
28                 j++;
29             }
30             i++;
31         }
32         if(j==word.length()) return true;
33         return false;
34     }
35 }

 

posted @ 2019-09-23 20:01  chyblogs  阅读(245)  评论(0)    收藏  举报