package com.eureka
package string.recursive
import scala.annotation.tailrec
object ValidPalindrome:
def isPalindrome(s: String): Boolean =
@tailrec def loop(left: Int, right: Int): Boolean =
if left >= right then return true
val lChar = s(left)
val rChar = s(right)
if !lChar.isLetterOrDigit then loop(left + 1, right)
else if !rChar.isLetterOrDigit then loop(left, right - 1)
else if lChar.toLower == rChar.toLower then loop(left + 1, right - 1)
else false
loop(0, s.length - 1)