其他分享
首页 > 其他分享> > LeetCode524. 通过删除字母匹配到字典里最长单词

LeetCode524. 通过删除字母匹配到字典里最长单词

作者:互联网

  1. 通过删除字母匹配到字典里最长单词
    给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。

如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。

示例 1:

输入:s = “abpcplea”, dictionary = [“ale”,“apple”,“monkey”,“plea”]
输出:“apple”
示例 2:

输入:s = “abpcplea”, dictionary = [“a”,“b”,“c”]
输出:“a”

双指针,记录已经匹配的个数,在遍历循环结束时,如果匹配个个数和匹配字符串的长度相等的话,则该字符串为字串。

class Solution {
    public  String findLongestWord(String s, List<String> dictionary) {

        String res ="";
        for(String st : dictionary){
            int x = s.length();//题目字符串的长度
            int y=st.length();//匹配字符串的长度
            int i =0;
            int j=0;
            while (i<x && j<y){
                //满足的话j才+,否则不动
                if(s.charAt(i) == st.charAt(j)){
                    j++;
                }
                i++;
            }
            if(j == y){ //是字串
                if(st.length() > res.length() || (st.length() == res.length() && st.compareTo(res) < 0)){
                    res=st;
                }
            }
        }


        return res;
    }
}

标签:dictionary,res,st,单词,length,字符串,LeetCode524,字典
来源: https://blog.csdn.net/qq_46110320/article/details/120292995