/
eb
/
grokking_algorithms
Обзор
Документация
Войти
/
eb
/
grokking_algorithms
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
09_dynamic_programming/php/01_longest_common_subsequence.php
45 строк
1 KB
Yuriy Marad
Add PHP example for chapter 09 - dynamic programming (#98)
29 мар 2019, 00:53
29 мар 2019, 00:53
bac32b6
Код
Авторство
О чём код?
<?php /** * @param string $stringA * @param string $stringB * @return array */ function search(string $stringA, string $stringB): array { $cell = []; for ($i = 0; $i < strlen($stringA); $i++) { for ($j = 0; $j < strlen($stringB); $j++) { if ($stringA[$i] === $stringB[$j]) { if (isset($cell[$i - 1][$j - 1])) { $cell[$i][$j] = $cell[$i - 1][$j - 1] + 1; } else { $cell[$i][$j] = 1; } } else { if (isset($cell[$i - 1][$j]) || isset($cell[$i][$j - 1])) { $cell[$i][$j] = max( isset($cell[$i - 1][$j]) ? $cell[$i - 1][$j] : 0, isset($cell[$i][$j - 1]) ? $cell[$i][$j - 1] : 0 ); } else { $cell[$i][$j] = 0; } } } } return $cell; } print_r(search('fish', 'fosh')); /* [ f o s h f [1,1,1,1], i [1,1,1,1], s [1,1,2,2], h [1,1,2,3] ] */