package com.zerroi.leetcode.Three18; import java.util.HashMap; import java.util.Map; import java.util.Objects; public class WordPattern { public static void main(String[] args) { SolutionThird solutionThird = new SolutionThird(); boolean res = solutionThird.wordPattern("aaaa", "dog cat cat dog"); System.out.println("res = " + res); } } class SolutionThird { public boolean wordPattern(String pattern, String s) { HashMap patternToS = new HashMap<>(); HashMap SToPattern = new HashMap<>(); String[] strs = s.split(" "); if (pattern.length() != strs.length) { return false; } for (int i = 0; i < pattern.length(); i++) { char c = pattern.charAt(i); String str = strs[i]; if (patternToS.containsKey(c)) { if (!Objects.equals(patternToS.get(c), str)) { return false; } } else { patternToS.put(c, str); } if (SToPattern.containsKey(str)) { if (SToPattern.get(str) != c) { return false; } } else { SToPattern.put(str, c); } } return true; } }