class Solution { /** * @param String[] $words * @param String $pattern * @return String[] */ function findAndReplacePattern($words, $pattern) { $res = array(); $map1 =array(); $map2 =array(); for($i=0;$i<count($words);$i++){ $this->initmap($map1,$map2); $p = true ; for($s=0;$s<strlen($words[$i]);$s++){ var_dump($map1[ord($pattern[$s])-97]); if($map1[ord($pattern[$s])-97] === 0 && $map2[ord($words[$i][$s])-97] === 0){ $map1[ord($pattern[$s])-97] = $words[$i][$s]; $map2[ord($words[$i][$s])-97] = 1; }else if($map1[ord($pattern[$s])-97]!==$words[$i][$s]){ $p =false ; break; } } if($p === true){ array_push($res,$words[$i]); } } return $res ; } function initmap(&$m1,&$m2){ if(isset($m1[0])){ for($i=0;$i<26;$i++){ $m1[$i] = $m2[$i] =0; } }else{ for($i=0;$i<26;$i++){ array_push($m1,0); array_push($m2,0); } } } } |