public List<String> wordBreak(String s, Set<String> dict) {
        if (s == null) {
            return new ArrayList<String>();
        }
        if (dict == null || dict.size() == 0) {
            return new ArrayList<String>();
        }
        Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
        return _wordBreak(s,dict,map);
    }