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