Решение
class Solution {
fun isPalindrome(s: String): Boolean {
var i = 0
var j = s.length - 1
while (i < j) {
var ci = s[i]
var cj = s[j]
while (i < j && !((ci in 'a'..'z') || (ci in 'A'..'Z') || (ci in '0'..'9'))) { i++; ci = s[i] }
while (i < j && !((cj in 'a'..'z') || (cj in 'A'..'Z') || (cj in '0'..'9'))) { j--; cj = s[j] }
val li = if (ci in 'A'..'Z') (ci.code + 32).toChar() else ci
val lj = if (cj in 'A'..'Z') (cj.code + 32).toChar() else cj
if (li != lj) return false
i++; j--
}
return true
}
}