Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.23 KB | None | 0 0
  1. boolean stringsRearrangement(String[] inputArray) {
  2.     return rearrange(inputArray, 0, 0);
  3. }
  4. boolean rearrange(String[] str, int curr, int next){
  5.     // if(curr==str.length-2 && next==str.length-1) return true;
  6.     if(curr < str.length && next < str.length){
  7.        
  8.         if(rearrange(str, curr, next+1)) return true;
  9.         if(curr!=next && strCompare(str[curr], str[next])){
  10.             if(curr==str.length-2 && next==str.length-1) return true;
  11.            
  12.             swapNext(str, curr, next);
  13.            
  14.             if(rearrange(Arrays.copyOf(str,str.length), curr+1, curr+1)) return true;
  15.  
  16.             swap(str, curr, curr+1);
  17.            
  18.             if(rearrange(Arrays.copyOf(str,str.length), curr+1, curr+1)) return true;
  19.         }
  20.    
  21.     }
  22.     return false;
  23. }
  24.  
  25. void swapNext(String[] s,int i, int j){
  26.     String temp=s[i+1];
  27.     s[i+1]=s[j];
  28.     s[j]=temp;
  29. }
  30.  
  31. void swap(String[] s,int i, int j){
  32.     String temp=s[i];
  33.     s[i]=s[j];
  34.     s[j]=temp;
  35. }
  36.  
  37. boolean strCompare(String s1, String s2){
  38.     int err=1;
  39.     for(int i=0;i<s1.length();i++){
  40.         if(s1.charAt(i)!=s2.charAt(i)) err--;
  41.     }
  42.     System.out.println(s1+" | "+s2+"    err"+ err);
  43.     if(err==0) return true;
  44.     return false;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement