fun isPalindrome(s: String, left: Int, right: Int): Boolean {
var l = left
var r = right
while (l < r) {
if (s[l] != s[r]) return false
l++
r--
}
return true
}
fun checkRangesForPalindrome(s: String, ranges: List<Pair<Int, Int>>) {
for ((start, end) in ranges) {
val substring = s.substring(start..end)
val result = if (isPalindrome(s, start, end)) "Palindrome" else "Not palindrome"
println("$substring: $result")
}
}
fun main() {
val s = "abcddcbeebc"
val ranges = listOf(
2 to 5,
5 to 10,
3 to 7
)
checkRangesForPalindrome(s, ranges)
}
/*
run:
cddc: Palindrome
cbeebc: Palindrome
ddcbe: Not palindrome
*/