最长子序列
- 524. Longest Word in Dictionary through Deleting (Medium)
- Input:
- s = "abpcplea", d = ["ale","apple","monkey","plea"]
- Output:
- "apple"
题目描述:
?? 删除 s 中的一些字符, 使得它构成字符串列表 d 中的一个字符串, 找出能构成的最长字符串. 如果有多个相同长度的结果, 返回字典序的最小字符串.
代码:
- public String findLongestWord(String s,List<String>d){
- String longestWord="";
- for(String target:d){
- int l1=longestWord.length();
- int l2=target.length();
- if(l1>l2||(l1==l2&&longestWord.compareTo(target)<0)
- continue;
- if(isValid(s,target)){
- longestWord=target;
- }
- }
- return longestWord;
- }
- public boolean isValid(String s,String target){
- int i=0;
- int j=0;
- while(i<s.length()&&j<target.length()){
- if(s.charAt(i)==target.charAt(j)){
- j++;
- }
- i++;
- }
- return j==target.length();// 证明 S 中包含 target
- }
来源: http://www.bubuko.com/infodetail-3106886.html