Advertisement
Guest User

Tayo

a guest
Jun 27th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. static int palindromeIndex(String s) {
  2. int offsetL = 0;
  3. int offsetR = 1;
  4. int retval = -1;
  5. for(int i =0;i<s.length()/2;i++){
  6. int indexL = i+offsetL;
  7. int indexR = s.length()-i-offsetR;
  8. if(s.charAt(indexL)!= s.charAt(indexR)) {
  9. if(s.charAt(indexL+1)== s.charAt(indexR)) {
  10. retval = indexL;
  11. }
  12. else if (s.charAt(indexL)== s.charAt(indexR-1)) {
  13. retval = indexR;
  14. }
  15. else retval= -1;
  16.  
  17. break;
  18. }
  19. }
  20. if(retval!=-1) {
  21. if(!isPalindrom(removechar(s, retval))){
  22. offsetL = 0;
  23. offsetR = 1;
  24. retval = -1;
  25. for(int i =0;i<s.length()/2;i++){
  26. int indexL = i+offsetL;
  27. int indexR = s.length()-i-offsetR;
  28. if(s.charAt(indexL)!= s.charAt(indexR)) {
  29. if (s.charAt(indexL)== s.charAt(indexR-1)) {
  30. retval = indexR;
  31. }
  32.  
  33. else if(s.charAt(indexL+1)== s.charAt(indexR)) {
  34. retval = indexL;
  35. }
  36.  
  37. else retval= -1;
  38.  
  39. break;
  40. }
  41. }
  42.  
  43.  
  44. }
  45. }
  46. return retval;
  47. }
  48.  
  49. static String removechar(String str, int p) {
  50. return str.substring(0, p) + str.substring(p + 1);
  51. }
  52.  
  53. public static boolean isPalindrom(String word){
  54. int i1 = 0;
  55. int i2 = word.length() - 1;
  56. while (i2 > i1) {
  57. if (word.charAt(i1) != word.charAt(i2)) {
  58. return false;
  59. }
  60. ++i1;
  61. --i2;
  62. }
  63. return true;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement