https://leetcode.com/problems/valid-palindrome/description/ Easy

Решение

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
    }
}