单词规律
给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。
示例
输入: pattern = "abba", str = "dog cat cat dog" 输出: true
解题思路:双向映射
class Solution { public boolean wordPattern(String pattern, String s) { if (null == pattern || pattern.length() == 0) { return false; } if (null == s || s.length() == 0) { return false; } char[] chars = pattern.toCharArray(); String[] strArr = s.split(" "); if (chars.length != strArr.length) { return false; } Map<Character, String> char2Str = new HashMap(); Map<String, Character> str2Char = new HashMap<>(); for (int i = 0; i < chars.length; i++) { char ch = chars[i]; String str = strArr[i]; if (char2Str.containsKey(ch) && !char2Str.get(ch).equalsIgnoreCase(str)) { return false; } if (str2Char.containsKey(str) && !str2Char.get(str).equals(ch)) { return false; } char2Str.put(ch, str); str2Char.put(str, ch); } return true; } }
立志如山 静心求实
浙公网安备 33010602011771号