Amazon Interview Question
Software Engineer / DevelopersCountry: United States
Interview Type: Phone Interview
package com.palindrometest;
public class PalindromeDate {
public static void main(String[] args) {
String input = "ISUDUSR";
boolean isPalindrome = false;
int i = 0;
int j = input.length()-1;
while(i <= input.length()/2 && j>=input.length()/2+1) {
if(input.charAt(i++) == input.charAt(j--)) {
isPalindrome = true;
} else {
isPalindrome = false;
}
}
if(isPalindrome) {
System.out.println("Palindrome");
} else {
isPalindrome = false;
System.out.println("Not a Palindrome");
}
}
}
public boolean isPalindrome(String str){
return str.equals(new StringBuilder(str).reverse().toString());
}
boolean isPalindrome(String str){
if(str==null) return false;
int length=str.length();
int start=0;
int end=length-1;
str=str.toLowerCase();
while(start<end){
if(str.charAt(start)==' ') start++;
if(str.charAt(end)==' ') end--;
if(str.charAt(start)!=str.charAt(end)){
return false;
}
start++;
end--;
}
return true;
}
1. get to middle element of string.
- Punit Jain April 27, 20122. take two pointers p1 and p2 point to middle element(if string is of odd length, or two different middle elements incase of even length).
3. while (p1 >= start, p2 <= end)
{
if (*p1 !=*p2)
return FALSE;
p1--;
p2++;
}
return true;