/**
* Determine if the input is a palindrome.
*/
public static boolean isPalindrome(char[] in) {
if (in == null) { // null isn't.
return false;
}
int len = in.length;
if (len < 2) { // one (or zero), is.
return true;
}
boolean isOdd = (len & 1) != 0;
int halfLen = len >> 1;
Stack<Character> charStack = new Stack<Character>();
for (int i = 0; i < halfLen; i++) {
charStack.push(in[i]);
}
if (isOdd) {
halfLen++;
}
for (int i = halfLen; i < len; i++) {
if (in[i] != charStack.pop()) {
return false;
}
}
return true;
}
Code Pretty Print Script
Thursday, December 12, 2013
Palindromes
How can you efficiently tell if a word is a palindrome? You could always reverse your input, and then test that reversed String against your initial input String (because they'll be equal if the input is a palindrome, by definition). Or, you could use my Stack and do this.
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment