首页 > 其他 > 详细

[LintCode] 194. Find Words

时间:2020-03-18 10:38:25      阅读:53      评论:0      收藏:0      [点我收藏+]

Given a string str and a dictionary dict, you need to find out which words in the dictionary are subsequences of the string and return those words.The order of the words returned should be the same as the order in the dictionary.

Example

Example 1:

Input:
str="bcogtadsjofisdhklasdj"
dict=["book","code","tag"]
Output:
["book"]
Explanation:Only book is a subsequence of str

Example 2:

Input:
str="nmownhiterer"
dict=["nowhere","monitor","moniter"]
Output:
["nowhere","moniter"]

Solution 1:
public class Solution {
    /**
     * @param str: the string
     * @param dict: the dictionary
     * @return: return words which  are subsequences of the string
     */
    public List<String> findWords(String str, List<String> dict) {
        // Write your code here.
        List<String> res = new ArrayList<>();
        for (String item: dict) {
            int sItem = 0;
            int sStart = 0;
            while (sItem < item.length() && sStart < str.length()) {
                if (item.charAt(sItem) == str.charAt(sStart)) {
                    sItem += 1;
                }
                if (sItem == item.length()) {
                    res.add(item);
                    break;
                }
                sStart += 1;
            }
        }
        return res;
    }
}

 

 

 

[LintCode] 194. Find Words

原文:https://www.cnblogs.com/xuanlu/p/12515161.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!