그래서 나는 마지막으로 볼을 떨어 뜨린 다른 훌륭한 인터뷰에서 방금 나왔습니다. 제가받은 시험은 간단한 CS 문제를 해결하는 것과 관련이 있습니다.해시를 사용한 문자열 비교
당신은 내가 일치하는 문자를 두 문자열을 비교하고 반환하도록 요청하고 가장 효율적인 방법을 사용하여 두 개의 독침 $a = 'abcd'; $b = 'cdfg';
있습니다. 당시 가장 분명한 (그리고 가장 효율적인) 솔루션은 다음과 같습니다.
`는
$matches = array();
$length = strlen($a);
for($i = 0; $i < $length; $i++) {
if(strpos($b, $a[$i]) !== false) {
$matches[] = $a[$i];
}
}
return $matches;
나는 정확하고 가장 효율적인 솔루션을 해시의 사용을 요구 정보통이었다.
누군가 정교하게 설명해 주시겠습니까?
편집 :
이 예제의 반환 값은 "CD"이어야합니다.
나는 "array_intersect"와 같은 PHP 방법을 사용하는 것이 부정 행위로 간주된다고 들었습니다.
"일치하는 모든 문자"는 무엇을 의미합니까? 모든 공통 문자? 동일한 위치에서 일치하는 문자는 무엇입니까? 다른 것? 부정확 한 설명은 모든 사람의 시간을 낭비합니다. –
이 예제에서 반환 값은 "cd"입니다. –
배열은 이해할 수 있지만 해시가 있습니까? 'var_dump (array_intersect (str_split ($ a), str_split ($ b))); ' –