本文主要是介绍524. Longest Word in Dictionary through Deleting,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:删除 s 中的一些字符,使得它构成字符串列表 d 中的一个字符串,找出能构成的最长字符串。如果有多个相同长度的结果,返回字典序的最小字符串。
通过删除字符串 s 中的一个字符能得到字符串 t,可以认为 t 是 s 的子序列,我们可以使用双指针来判断一个字符串是否为另一个字符串的子序列。
class Solution {public String findLongestWord(String s, List<String> d) {String longestWord = "";for (String target : d) {int l1 = longestWord.length(), l2 = target.length();if (l2 < l1|| ( l1==l2 && longestWord.compareTo(target) < 0 )) {continue;}if (isSubstr(s, target)) {longestWord = target;}}return longestWord;}public boolean isSubstr(String s,String target){int i=0,j=0;while(i<s.length() && j<target.length()){if(s.charAt(i)==target.charAt(j)){j++;}i++;}return j==target.length();}
}
java简单的字符串大小比较——compareTo()方法
即参与比较的两个字符串
如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值,
如a="ab",b="c",则输出 -2;
如a="aacdef",b="aA"则输出32;
如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值。
如a="abcdef",b="a"输出5;
如a="abcdef",b="abc"输出3;
这篇关于524. Longest Word in Dictionary through Deleting的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!