这道题得和I联动
boolean res = false;
Map<String, Character> map = new HashMap<>();
Set<Character> set = new HashSet<>();
public boolean wordPatternMatch(String pattern, String str) {
helper(pattern, 0, str, 0);
return res;
}
private void helper(String pattern, int p, String str, int s){
if (p == pattern.length() && s == str.length()) {
res = true;
return;
}
if (p >= pattern.length() || s >= str.length()) {
return;
}
char c = pattern.charAt(p);
for (int i = s + 1; i <= str.length(); i++) {
String substr = str.substring(s, i);
if (!map.containsKey(substr) && !set.contains(c)) {
map.put(substr, c);
set.add(c);
helper(pattern, p + 1, str, i);
set.remove(c);
map.remove(substr);
} else if (map.containsKey(substr) && map.get(substr) == c) {
helper(pattern, p + 1, str, i);
}
}
}