Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- import java.text.*;
- import java.math.*;
- import java.util.regex.*;
- public class Solution {
- static int palindromeIndex(String s, boolean offsetLeft) {
- int offset1 = 0;
- int offset2 = 0;
- int offsetIndex = -1;
- for (int i = 0; i != s.length() / 2; i++) {
- if (s.charAt(i + offset1) != s.charAt(s.length() - 1 - i - offset2)) {
- if (offset1 != offset2) {
- return offsetLeft ? -1 : palidromeIndex(s, false);
- }
- if (offsetLeft) {
- if (s.charAt(i + 1) == s.charAt(s.length() - 1 - i)) {
- offset1 = 1;
- offsetIndex = i;
- } else if (s.charAt(i) == s.charAt(s.length() - 2 - i)) {
- offset2 = 1;
- offsetIndex = s.length() - 1 - i;
- } else {
- return palidromeIndex(s, false);
- }
- } else {
- if (s.charAt(i) == s.charAt(s.length() - 2 - i)) {
- offset2 = 1;
- offsetIndex = s.length() - 1 - i;
- } else if (s.charAt(i + 1) == s.charAt(s.length() - 1 - i)) {
- offset1 = 1;
- offsetIndex = i;
- } else {
- return -1;
- }
- }
- }
- }
- return offsetIndex == -1 && offsetLeft ? palindromeIndex(s, false) : offsetIndex;
- }
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- int q = in.nextInt();
- for(int a0 = 0; a0 < q; a0++){
- String s = in.next();
- int result = palindromeIndex(s, true);
- System.out.println(result);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement