最长子序列
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 }

浙公网安备 33010602011771号