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

 

 

双指针:

class Solution {
public:
    string findLongestWord(string s, vector<string>& dictionary) {
        string res;
        for(int i = 0; i < dictionary.size(); i++){
            int m = 0;
            int n = 0;
            int cnt = 0;
            while(n<dictionary[i].size()&&m<s.size()){
                if(s[m]==dictionary[i][n]){ // 相等,就++继续比较
                    m++;
                    n++;
                    cnt++;
                }else{  // 不等就m++
                    m++;
                }
            }
            if(cnt==dictionary[i].size()){  // 此时找到
            // 返回长度最长
            // 或者字典序最小的字符串
                if(res.size()==0||dictionary[i].size()>res.size()||(dictionary[i].size()==res.size()&&dictionary[i]<res))
                    res = dictionary[i];
            }
        }   
        return res;
    }
};

 

posted @ 2021-08-10 17:33  三一一一317  阅读(32)  评论(0)    收藏  举报