Leetcode - Substring with Concatenation of All Words

My code:

public class Solution {
    public List<Integer> findSubstring(String s, String[] words) {
        List<Integer> ret = new ArrayList<Integer>();
        if (s == null || s.length() == 0 || words == null || words.length == 0) {
            return ret;
        }
        
        int L = words[0].length();
        Map<String, Integer> map = new HashMap<String, Integer>();
        for (int i = 0; i < words.length; i++) {
            if (!map.containsKey(words[i])) {
                map.put(words[i], 1);
            }
            else {
                map.put(words[i], map.get(words[i]) + 1);
            }
        }
        
        for (int i = 0; i <= s.length() - words.length * L; i++) {
            int j = i;
            int c = 0;
            Map<String, Integer> copy = new HashMap<String, Integer>(map);
            while (c < words.length) {
                String temp = s.substring(j, j + L);
                if (copy.containsKey(temp)) {
                    int times = copy.get(temp);
                    if (times <= 0) {
                        break;
                    }
                    copy.put(temp, times - 1);
                    c++;
                    j = j + L;
                }
                else {
                    break;
                }
            }
            if (c == words.length) {
                ret.add(i);
            }
        }
        
        return ret;
    }
}

这道题目其实没什么意思。暴力解法。
很像 minimum window substring

Anyway, Good luck, Richardo! — 10/09/2016

    原文作者:Richardo92
    原文地址: https://www.jianshu.com/p/372eabeaf5c9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞