<?php
function search($array, $word, $word_so_far = '') {
if ($word === $word_so_far) {
return true;
}
foreach ($array as $symbol) {
$new_word = $word_so_far . $symbol;
if (search($array, $word, $new_word)) {
return true;
}
}
}
return false;
}
$symbols = array('p', 'pa', 'aw'); var_dump(search
($symbols, 'paw')); // true var_dump(search
($symbols, 'ppppawpa')); // true var_dump(search
($symbols, 'ppawap')); // false
PD9waHAKZnVuY3Rpb24gc2VhcmNoKCRhcnJheSwgJHdvcmQsICR3b3JkX3NvX2ZhciA9ICcnKSB7CiAgICBpZiAoJHdvcmQgPT09ICR3b3JkX3NvX2ZhcikgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIGZvcmVhY2ggKCRhcnJheSBhcyAkc3ltYm9sKSB7CiAgICAgICAgJG5ld193b3JkID0gJHdvcmRfc29fZmFyIC4gJHN5bWJvbDsKICAgICAgICBpZiAoc3Vic3RyKCR3b3JkLCAwLCBzdHJsZW4oJG5ld193b3JkKSkgPT09ICRuZXdfd29yZCkgewogICAgICAgICAgICBpZiAoc2VhcmNoKCRhcnJheSwgJHdvcmQsICRuZXdfd29yZCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBmYWxzZTsKfQoKJHN5bWJvbHMgPSBhcnJheSgncCcsICdwYScsICdhdycpOwp2YXJfZHVtcChzZWFyY2goJHN5bWJvbHMsICdwYXcnKSk7IC8vIHRydWUKdmFyX2R1bXAoc2VhcmNoKCRzeW1ib2xzLCAncHBwcGF3cGEnKSk7IC8vIHRydWUKdmFyX2R1bXAoc2VhcmNoKCRzeW1ib2xzLCAncHBhd2FwJykpOyAvLyBmYWxzZQo=