Goldman Sachs Interview Question
Software Engineer / Developersint isPalindrome(char *str) {
char * end = strlen(str) - 1;
while (str < end) {
if (*str != *end) return -1;
}
return 1;
}
Why everybody is iterating through whole String. You have to traverse 1/2 string. Start from both the side.
boolean isPalindrom=true;
for(int i=0;i<str.length()/2;i++)
{
if(str.charAt(i)!=str.charAt(str.length()-1-i))
isPalindrom=false;
}
Java CODE:
import javax.swing.JOptionPane;
public class CheckPalindrome
{
public static void main(String[] args)
{
String s=JOptionPane.showInputDialog(null,"Enter a string ","Example",JOptionPane.QUESTION_MESSAGE);
String output="";
if(isPalindrome(s))
{
output=s+" is a palindrome!";
}
else
output=s+" is not a palindrome!";
JOptionPane.showMessageDialog(null,output,"The result",JOptionPane.INFORMATION_MESSAGE);
}
public static boolean isPalindrome(String s)
{
int low=0;
int high=s.length()-1;
while(low<high)
{
if(s.charAt(low)!=s.charAt(high))
return false;
low++;
high--;
}
return true;
}
}
- Anonymous August 11, 2010