How to check whether each substring range (L to R) from an array of substring ranges is a palindrome in PHP

1 Answer

0 votes
// Check if a substring of $str from $left to $right (inclusive) is a palindrome
function isPalindrome(string $str, int $left, int $right): bool {
    while ($left < $right) {
        if ($str[$left++] !== $str[$right--]) {
            return false;
        }
    }
    return true;
}

// Check and print whether substrings defined by ranges are palindromes
function checkRangesForPalindrome(string $str, array $ranges): void {
    foreach ($ranges as [$start, $end]) {
        $substring = substr($str, $start, $end - $start + 1);
        echo "{$substring}: ";
        echo isPalindrome($str, $start, $end) ? "Palindrome" : "Not palindrome";
        echo PHP_EOL;
    }
}

$str = "abcddcbeebc";
$ranges = [
    [2, 5],
    [5, 10],
    [3, 7]
];

checkRangesForPalindrome($str, $ranges);

 
 
/*
run:
 
cddc: Palindrome
cbeebc: Palindrome
ddcbe: Not palindrome
 
*/

 



answered 2 hours ago by avibootz

Related questions

...