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