public boolean wordPatternMatch(String pattern, String str) {
        Map<Character, String> map = new HashMap<>();
        Set<String> set = new HashSet<>();
        return wordPatternMatch(pattern, str, 0, 0, map, set);
    }
Given a pattern and a string str, find if str follows the same pattern.

 Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty substring in str.
https://leetcode.com/problems/word-pattern-ii/
src/com/interview/recursion/WordPattern.java