Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int palindromeIndex(String s) {
- int offsetL = 0;
- int offsetR = 1;
- int retval = -1;
- for(int i =0;i<s.length()/2;i++){
- int indexL = i+offsetL;
- int indexR = s.length()-i-offsetR;
- if(s.charAt(indexL)!= s.charAt(indexR)) {
- if(s.charAt(indexL+1)== s.charAt(indexR)) {
- retval = indexL;
- }
- else if (s.charAt(indexL)== s.charAt(indexR-1)) {
- retval = indexR;
- }
- else retval= -1;
- break;
- }
- }
- if(retval!=-1) {
- if(!isPalindrom(removechar(s, retval))){
- offsetL = 0;
- offsetR = 1;
- retval = -1;
- for(int i =0;i<s.length()/2;i++){
- int indexL = i+offsetL;
- int indexR = s.length()-i-offsetR;
- if(s.charAt(indexL)!= s.charAt(indexR)) {
- if (s.charAt(indexL)== s.charAt(indexR-1)) {
- retval = indexR;
- }
- else if(s.charAt(indexL+1)== s.charAt(indexR)) {
- retval = indexL;
- }
- else retval= -1;
- break;
- }
- }
- }
- }
- return retval;
- }
- static String removechar(String str, int p) {
- return str.substring(0, p) + str.substring(p + 1);
- }
- public static boolean isPalindrom(String word){
- int i1 = 0;
- int i2 = word.length() - 1;
- while (i2 > i1) {
- if (word.charAt(i1) != word.charAt(i2)) {
- return false;
- }
- ++i1;
- --i2;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement