<?php
$dictionary = array("hello", "hi", "how r u", "how are you", "how r you", "how are u");
function isDictionaryWord($str,$dictionary){
foreach($dictionary as $each_word){
if(isSubsequence(strtolower($each_word),strtolower($str))){
return true;
}
}
return false;
}
function isSubsequence($needle,$haystack){
$len1 = strlen($needle);
$len2 = strlen($haystack);
if($len1 > $len2) return false;
$ptr = 0;
for($i=0;$i<$len2 && $ptr < $len1;$i++){
if($haystack[$i] === $needle[$ptr]) $ptr++;
}
return $ptr == $len1;
}
$tests = array(
'Hello',
'Helloooo',
'How r youuu !!!!',
'hell',
'w are y'
);
foreach($tests as $each_test){
echo $each_test," => ",var_dump(isDictionaryWord($each_test,$dictionary)),PHP_EOL;
}
preferences:
26.47 ms | 405 KiB | 5 Q