Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.89 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3. import java.text.*;
  4. import java.math.*;
  5. import java.util.regex.*;
  6.  
  7. public class Solution {
  8.  
  9.     static int palindromeIndex(String s, boolean offsetLeft) {
  10.         int offset1 = 0;
  11.         int offset2 = 0;
  12.         int offsetIndex = -1;
  13.         for (int i = 0; i != s.length() / 2; i++) {
  14.             if (s.charAt(i + offset1) != s.charAt(s.length() - 1 - i - offset2)) {
  15.                 if (offset1 != offset2) {
  16.                     return offsetLeft ? -1 : palidromeIndex(s, false);
  17.                 }
  18.                 if (offsetLeft) {
  19.                     if (s.charAt(i + 1) == s.charAt(s.length() - 1 - i)) {
  20.                         offset1 = 1;
  21.                         offsetIndex = i;
  22.                     } else if (s.charAt(i) == s.charAt(s.length() - 2 - i)) {
  23.                         offset2 = 1;
  24.                         offsetIndex = s.length() - 1 - i;
  25.                     } else {
  26.                         return palidromeIndex(s, false);
  27.                     }
  28.                 } else {
  29.                     if (s.charAt(i) == s.charAt(s.length() - 2 - i)) {
  30.                         offset2 = 1;
  31.                         offsetIndex = s.length() - 1 - i;
  32.                     } else if (s.charAt(i + 1) == s.charAt(s.length() - 1 - i)) {
  33.                         offset1 = 1;
  34.                         offsetIndex = i;
  35.                     } else {
  36.                         return -1;
  37.                     }
  38.                 }
  39.             }
  40.         }
  41.         return offsetIndex == -1 && offsetLeft ? palindromeIndex(s, false) : offsetIndex;
  42.     }
  43.  
  44.     public static void main(String[] args) {
  45.         Scanner in = new Scanner(System.in);
  46.         int q = in.nextInt();
  47.         for(int a0 = 0; a0 < q; a0++){
  48.             String s = in.next();
  49.             int result = palindromeIndex(s, true);
  50.             System.out.println(result);
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement