@ 2016-03-14T16:05:30Z <?php
$sequences = ["6", "66", "67", "68", "69", "697", "698", "699"];
$data = ["69212345", "6209876544", "697986546"];
function get_longest_subsequence_element(array $sequences, $str){
$sequenceTree = [];
$longestSequence = "";
$strLength = strlen($str);
$sequences = array_filter($sequences, function($v)use($strLength){
return strlen($v) <= $strLength;
});
$sequenceTree = create_sequence_tree($sequences);
$longestSequence = search_sequence_tree($sequenceTree, $str, $longestSequence);
return $longestSequence;
}
function create_sequence_tree(array $sequences){
$sequenceTree = [];
foreach($sequences as $sequence){
$parts = str_split($sequence);
$ref = &$sequenceTree;
while($key = array_shift($parts))
$ref = &$ref[$key];
unset($ref);
}
return $sequenceTree;
}
function search_sequence_tree(array $sequenceTree, $str, &$longestSequence, &$sequenceTmp = ""){
foreach($sequenceTree as $v => $checkValue){
if(strpos($str, $sequenceTmp . $v) !== FALSE){
$sequenceTmp .= $v;
if(strlen($sequenceTmp) > strlen($longestSequence))
$longestSequence = $sequenceTmp;
if(!is_null($sequenceTree[$v]))
search_sequence_tree($sequenceTree[$v], $str, $longestSequence, $sequenceTmp);
else
$sequenceTmp = substr($sequenceTmp, 0 ,-1);
}
}
return $longestSequence;
}
foreach($data as $str) {
echo get_longest_subsequence_element($sequences, $str) . "<br>";
}
?>
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.5.0 - 5.5.35 , 5.6.0 - 5.6.28 , 7.0.0 - 7.0.20 , 7.1.0 - 7.1.25 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.4 , 8.3.6 69<br>6<br>697<br> Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
69<br>6<br>697<br> preferences:dark mode live preview
172.96 ms | 402 KiB | 227 Q