Longest Word in Dictionary through Deleting - LeetCode

[toc]spa

題目連接

Longest Word in Dictionary through Deleting - LeetCodecode

注意點

  • 長度同樣的字符串要按字典序返回較小的

解法

解法一:遍歷字典中的單詞,用一個變量i來記錄單詞中的某個字母的位置,咱們遍歷給定字符串,若是遍歷到單詞中的某個字母來,i自增1,若是沒有,就繼續往下遍歷。這樣若是最後i和單詞長度相等,說明單詞中的全部字母都按順序出如今了字符串s中。若是能獲得,並且單詞長度大於等於結果ret的長度,咱們再看是否須要更新結果ret,有兩種狀況是必需要更新結果ret的,一個是當前單詞長度大於結果ret的長度,另外一種是當前單詞長度和ret相同,可是字母順序小於結果ret,這兩種狀況下更新結果ret便可leetcode

class Solution {
public:
    string findLongestWord(string s, vector<string>& d) {
        string ret = "";
        int i,m,n = d.size();
        for(i = 0;i < n;i++)
        {
            int j = 0;
            m = d[i].size();
            for(char c:s)
            {
                if(j < m && c == d[i][j]) j++;
            }
            if(j == m)
            {
                if(m > ret.size()) ret = d[i];
                else if(m == ret.size() && ret > d[i]) ret = d[i];
            }
        }
        return ret;
    }
};

小結

  • 一開始沒看懂題目是什麼意思,理解成最長前綴了,其實題目是問可否將s中的某些字母刪除而獲得字典中的單詞
相關文章
相關標籤/搜索