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

1 Answer

0 votes
import Foundation

func isPalindrome(_ s: String, from left: Int, to right: Int) -> Bool {
    var l = left
    var r = right
    let characters = Array(s)

    while l < r {
        if characters[l] != characters[r] {
            return false
        }
        l += 1
        r -= 1
    }
    
    return true
}

func checkRangesForPalindrome(in s: String, ranges: [(Int, Int)]) {
    for (start, end) in ranges {
        let substring = String(s[s.index(s.startIndex, offsetBy: start)...s.index(s.startIndex, offsetBy: end)])
        let result = isPalindrome(s, from: start, to: end) ? "Palindrome" : "Not palindrome"
        print("\(substring): \(result)")
    }
}

let s = "abcddcbeebc"
let ranges = [(2, 5), (5, 10), (3, 7)]

checkRangesForPalindrome(in: s, ranges: ranges)



/*
run:

cddc: Palindrome
cbeebc: Palindrome
ddcbe: Not palindrome

*/

 



answered Nov 17, 2025 by avibootz

Related questions

...