// 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
*/