Какова сложность этой функции палиндрома? - PullRequest
0 голосов
/ 14 мая 2018
<?php

    function p($s){
    $count = strlen($s);
    $start = 0;
    $end = $count-1;
        $r = true;
        while($start<$end){ 
            if(!isChar($s[$start])){
                $start++;
            }
            elseif(!isChar($s[$end])){
                $end--;
            }else{
                if($s[$start] !== $s[$end]){
                    $r = false;
                    break;
                }
                $start++;
                $end--;
            }
        }
        return $r;
    }


    function isChar($char){
        $char = strtolower($char);
        if (preg_match('/[a-z]/', $char)) {
         return TRUE;
        }
    }


    print_r(p("23123123!!,,we2ew")); // return true
?>

Привет всем, я написал функцию, которая проверяет, является ли строка палиндромом.Строка может содержать любые символы, цифры и символы, но мне нужно проверить в пределах азр символов

123ebc123 - false, <> ebbe - true 123 /. ~ !! aaa - true

Это наиболееэффективный способ реализовать эту функцию?

ps не смотрите на реализацию функции isChar, представьте себе, что есть просто функция, которая возвращает true или false, если char это буква

Спасибо

1 Ответ

0 голосов
/ 14 мая 2018

Если мы используем обозначение Big Oh для представления временной сложности вашего алгоритма, это будет O (n)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...