290. 单词规律
290. 单词规律
1 题目
2 代码
class Solution { /** * @param String $pattern * @param String $str * @return Boolean */ function wordPattern($pattern, $str) { if (empty($pattern) || empty($str)) { return false; } $patternMap = str_split($pattern); $strMap = explode(" ", $str); if (count($patternMap) != count($strMap)) { return false; } $map = []; $reverseMap = []; foreach ($patternMap as $key => $p) { if (array_key_exists($strMap[$key], $reverseMap) && $reverseMap[$strMap[$key]] != $p) { return false; } if (array_key_exists($p, $map)) { if ($map[$p] == $strMap[$key]) { continue; } else { return false; } } $reverseMap[$strMap[$key]] = $p; $map[$p] = $strMap[$key]; } return true; } }
3 思路
- 一看到一一对应这个词就会想到 map
- 而且给出的例子中看到了,得维护两个 map,保证不会冲突
本文来自博客园,作者:吴丹阳-V,转载请注明原文链接:https://www.cnblogs.com/wudanyang/p/13604337.html