コード例 #1
0
        $isPalindrom = true;
    }
    return $isPalindrom;
}
$str = "Потенциальны палиндром вводится сюда.";
$length = $originalLength = mb_strlen($str, 'UTF-8');
$n = 0;
while ($length > 1) {
    $chStr = mb_substr($str, $n, $length, 'UTF-8');
    $chStr = str_replace(" ", "", $chStr);
    if (mb_strlen($chStr, 'UTF-8') == 0 && $length == $originalLength) {
        //Это условие может быть выполенно только в первую итерацию цикла while, т.к. далее $length будет только уменьшаться.
        echo "В проверяемой строке нет символов , кроме пробелов. Приложение будет остановлено";
        break;
    } else {
        if (isPalindrom($chStr)) {
            break;
        } else {
            if ($n + $length < $originalLength) {
                $n++;
            } else {
                $length--;
                $n = 0;
                if ($length == 1) {
                    break;
                }
            }
        }
    }
}
echo mb_substr($str, $n, $length, 'UTF-8');
コード例 #2
0
ファイル: 05.php プロジェクト: Dragomir89/ittalents_homeworks
// Да се извежда съобщение дали въведеното число е палиндром.
// Пример: 12321
// Изход: 12321 да.
// Пример: 12578
// Изход: 87521 не.
// Използвайте рекурсия
$result = '';
$number = 12121;
function isPalindrom($number)
{
    $inputNumber = $number;
    $number = (string) $number;
    $len = strlen($number);
    function reverse($number, $len)
    {
        if ($len == 0) {
            return '';
        }
        $len = strlen($number);
        $result = $number % 10;
        $number = (int) ($number / 10);
        $len--;
        $number = (string) $number;
        return $result . reverse($number, $len);
    }
    $reverseNumber = (int) reverse($number, $len);
    //var_dump($reverseNumber);
    return $inputNumber == $reverseNumber ? "Изход {$reverseNumber} да" : "Изход {$reverseNumber} не";
}
echo isPalindrom($number);
コード例 #3
0
        } else {
            return false;
        }
    }
    if ($isPalindrom = isPalindrom($input_str)) {
        $isPalindrom = true;
        $out_str = $input_str;
    } else {
        for ($i = 0, $len = mb_strlen($input_str); $i < $len; $i++) {
            $str = mb_substr($input_str, $i, $len);
            for ($j = mb_strlen($str), $len_str = 0; $j >= $len_str; $j--) {
                if ($j < $len_out_str) {
                    break;
                }
                $sub_str = mb_substr($str, 0, $j);
                if (isPalindrom($sub_str) && ($len_sub_str = mb_strlen($sub_str)) > 1) {
                    if ($len_out_str < $len_sub_str) {
                        $out_str = $sub_str;
                        $len_out_str = $len_sub_str;
                        break;
                    }
                }
            }
        }
    }
    if (!$isPalindrom && !$out_str) {
        $out_str = mb_substr($input_str, 0, 1);
    }
}
?>
コード例 #4
0
ファイル: dz11.php プロジェクト: AlexB2015/dz1
            return join('', array_reverse($ar[0]));
        };
        if ($str === $rev($str)) {
            return true;
        } else {
            return false;
        }
    } else {
        die("Входные данные не являются строкой!");
    }
}
/*
* проверка работы функции isPalindrom($str)
*/
echo isPalindrom('фау уаф') . '<br>';
echo isPalindrom(' фау уаф ') . '<br>';
echo isPalindrom(' фаууаф ') . '<br>';
echo isPalindrom('фаафы') . '<br>';
echo isPalindrom('фааф') . '<br>';
echo isPalindrom('ф') . '<br>';
echo isPalindrom('фф') . '<br>';
echo isPalindrom('фаууаф') . '<br>';
echo isPalindrom(' фау уаф ') . '<br>';
echo isPalindrom('фауцуаф') . '<br>';
echo isPalindrom('фауйлдуаф') . '<br>';
echo isPalindrom(' ddssdd ') . '<br>';
echo isPalindrom(true) . '<br>';
/* end */
?>
</body>
</html>