"A man, a plan, a canal: Panama" is a palindrome
"race a car" is not a palindrome
2. Implementation
valid
palindrome
same char
escape special char: continue
l and r
Q1: how to avoid special character?
A1: if there is not > 'a' or < 'z', we skip the pointer, meaning ++ or --
In Java, the 'int' type is a primitive , whereas the 'Integer' type is an object.
Runtime Error Message:Line 37: java.lang.StringIndexOutOfBoundsException: String index out of range: 2
Last executed input:".,"
//while (!validAphabet(s.charAt(l)))
// l++;StringIndexOutOfBoundsException
//while( !validAlphabet(s.charAt(r)))
// r--;
if ( !isValid(c.charAt(l)) )
{
l++;
continue;
}
if ( !isValid(c.charAt(r)) )
{
r--;
continue;
}
//else
// NOTE: if return type is required, no need to ELSE
return false;
(E) Palindrome Linked List
(H) Shortest Palindrome
(E) Palindrome Number
(M) Palindrome Partitioning
// Time:O(string length), Space:O(1) public boolean isPalindrome(String s) { // validate the input if (s== null || s.length() == 0) //return false; return true// nothing always palindrome empty to empty. int l = 0; int r = s.length()-1; //for (int i = 0; i < s.length();i++) while ( l < r ) { //while (!validAphabet(s.charAt(l))) // l++; //while( !validAlphabet(s.charAt(r))) // r--; if ( !isValid(c.charAt(l)) ) { l++; continue; } if ( !isValid(c.charAt(r)) ) { r--; continue; } //if (validAlphbet(s.charAt(l) && validAlphabet(s.charAt(r)) && s.charAt(l) != s.charAt(r) ) // NOTE: Uppercase conversion considered if ( !isSame(s.charAt(l), s.charAt(r)) ) return false; l++; r--; } return true; } //private boolean validAlphabet(character c) private boolean validAlphabet(char c) { //if ( (c <= 'Z' || c <= 'z') && (c' >= 'A' || c >= 'a') ) // NOTE: could be number if ( c >= 'a'&& c <='z' || c >='A'&&c<='Z' || c>='0'&&c<='9' ) return true; //else // NOTE: if return type is required, no need to ELSE return false; } private boolean isSame(char c1, char c2) { if ( c1 >= 'A' && c1 <= 'Z' ) c1 = (char)( c1- 'A' +'a'); if ( c2 >= 'A' && c2 <= 'Z') c2 = (char)(c2 - 'A' + 'a'); return c1== c2; }3. Similar Ones
(E) Palindrome Linked List
(H) Shortest Palindrome
(E) Palindrome Number
(M) Palindrome Partitioning
No comments:
Post a Comment