[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; } };