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

1 Answer

0 votes
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

*/

 



answered Nov 17, 2025 by avibootz

Related questions

...