Goldman Sachs Interview Question
Java DevelopersCountry: India
Interview Type: Written Test
void panlindrome(String in){
in = trim(in);
for(int i=0, j=in.length()-1; i < j; i++, j--){
if(in.charAt(i) != in.charAt(j)){
System.out.println("False");
return;
}
}
System.out.println("True");
}
String trim(String in){
in = in.toLowerCase();
StringBuilder builder = new StringBuilder(in.trim().length());
for(int i=0; i< in.length(); i++){
char ch = in.charAt(i);
if((ch >= 65 && ch <= 90) || (ch >= 97 && ch <= 122)){
builder.append(ch);
}
}
return builder.toString();
}
Code for palindrome with space skipping and case insensitive
boolean isPalindrome(String strs) {
if (strs == null)
return false;
char[] str = strs.toCharArray();
int i = 0;
int j = str.length-1;
while (i < j && str[i] == ' ') i++;
while (j > i && str[j] == ' ') j--;
while (i < j) {
if (Character.toLowerCase(str[i++]) !=
Character.toLowerCase(str[j--]))
return false;
while (i < j && str[i] == ' ') i++;
while (j > i && str[j] == ' ') j--;
}
return true;
}
public class Test {
public static void main(String[] args) {
String str = "madam";
String s = "";
for(int i=0;i<str.length();i++)
{
s = s+str.charAt(i);
System.out.println(s);
}
if(str.equals(s))
{
System.out.println(str+" is palindrome");
}
else {
System.out.println(str+" is not palindrome");
}
}
}
public class CheckPalindromesInStringType {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter your String Type Data");
String name=sc.nextLine();
if(ispalindromes(name)){
System.out.println("is palindromes String");
}else{
System.out.println("is not palindromes String");
}
}
private static boolean ispalindromes(String name) {
int low=0;
int high=name.length()-1;
while (low<high) {
if(name.charAt(low) != name.charAt(high))
return false;
low++;
high--;
}
return true;
}
}
Given a string as input, return true if it is a palindrome (ignoring capitalisation and punctuation marks). Look at test cases.
public class Palindrome {
static public boolean isPalindrome(String in) {
boolean result = false;
if (in == null) return result;
System.out.println(in);
StringBuilder rightway = new StringBuilder();
StringBuilder reverse = new StringBuilder();
for (int i=0; i<in.length(); i++) {
char c = in.charAt(i);
if (Character.isLetter(c)) {
rightway.append(Character.toLowerCase(c));
reverse.insert(0,Character.toLowerCase(c));
}
}
result = rightway.toString().length() > 0 && rightway.toString().equals(reverse.toString());
if ( result ) System.out.println("We have a palindrome");
else System.out.println("Not a palindrome");
return result;
}
public static void main(String[] args) {
isPalindrome("");
isPalindrome("This isn't a palindrome");
isPalindrome("Madam, I'm Adam");
isPalindrome("Poor Dan is in a droop");
}
}
public class PalindromeString {
public static void main(String... args) {
PalindromeString ps = new PalindromeString();
ps.testPalindrome("Able was I ere I saw Elba");
ps.testPalindrome("Ze de Lima, Rua Laura, Mil e Dez");
ps.testPalindrome("Dennis and Edna sinned");
ps.testPalindrome("Was it a car or a cat I saw?");
ps.testPalindrome("Madam, I'm Adam");
ps.testPalindrome("I");
ps.testPalindrome("OO");
ps.testPalindrome("OIO");
ps.testPalindrome("Hello");
ps.testPalindrome("She");
}
private void testPalindrome(String testString) {
System.out.println(String.format("The string '%s' %s palindrome.", testString, (this.isPalindrome(testString) ? "is" : "is not")));
}
private boolean isPalindrome(String string) {
String normalString = normalize(string);
int half = (int) Math.floor(normalString.length() / 2);
for (int i=0; i<half; i++) {
int j = normalString.length() - 1 - i;
if (normalString.charAt(i) != normalString.charAt(j)) {
return false;
}
}
return true;
}
private String normalize(String string) {
return string.toLowerCase().replaceAll("\\p{Punct}|\\s", "");
}
}
Time complexity O(n/2)
- Karan Tankshali November 11, 2014