Is Rotated Palindrome
import java.io.*;
import java.util.*;
class Solution {
public static void main(String[] args) {
Solution solution =new Solution();
String[] input = {
null,
"",
"CBAABCD",
"BAABCC",
"AC",
"A",
"AABADFBD"
};
for(int i=0;i< input.length;i++) {
System.out.println("Input: " + input[i] +
", Result: " + solution.isRotatedPalidrome(input[i]));
}
}
public boolean isRotatedPalidrome(String input){
if(input == null || input.length() < 1) {
return false;
}
return longestPalindromeExists(input+input, input.length());
}
public boolean longestPalindromeExists(String input, int k){
for(int i=0; i<input.length();i++){
if(expand(input, i, i, k) || expand(input, i, i+1, k)) {
return true;
}
}
return false;
}
public boolean expand(String input, int low, int high, int k) {
while(low >=0 && high < input.length() &&
input.charAt(low) == input.charAt(high)) {
if(high - low + 1 == k) {
return true;
}
low--; high++;
}
return false;
}
}