Check if the characters in a string form a Palindrome in O ( 1 ) extra space | Utility function to get the position of first character in the string ; Get the position of first character in the string ; Utility function to get the position of last character in the string ; Get the position of last character in the string ; Function to check if the characters in the given string forms a Palindrome in O ( 1 ) extra space ; break , when all letters are checked ; if mismatch found , break the loop ; Driver code
function firstPos ( str , start , end ) { let firstChar = - 1 ; for ( let i = start ; i <= end ; i ++ ) { if ( str [ i ] >= ' ' && str [ i ] <= ' ' ) { firstChar = i ; break ; } } return firstChar ; } function lastPos ( str , start , end ) { let lastChar = - 1 ; for ( let i = start ; i >= end ; i -- ) { if ( str [ i ] >= ' ' && str [ i ] <= ' ' ) { lastChar = i ; break ; } } return lastChar ; } function isPalindrome ( str ) { let firstChar = 0 , lastChar = str . length - 1 ; let ch = true ; for ( let i = 0 ; i < str . length ; i ++ ) { firstChar = firstPos ( str , firstChar , lastChar ) ; lastChar = lastPos ( str , lastChar , firstChar ) ; if ( lastChar < 0 firstChar < 0 ) break ; if ( str [ firstChar ] == str [ lastChar ] ) { firstChar ++ ; lastChar -- ; continue ; } ch = false ; break ; } return ch ; } let str = " " ; if ( isPalindrome ( str ) ) document . write ( " " ) ; else document . write ( " " ) ;