Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- boolean stringsRearrangement(String[] inputArray) {
- return rearrange(inputArray, 0, 0);
- }
- boolean rearrange(String[] str, int curr, int next){
- // if(curr==str.length-2 && next==str.length-1) return true;
- if(curr < str.length && next < str.length){
- if(rearrange(str, curr, next+1)) return true;
- if(curr!=next && strCompare(str[curr], str[next])){
- if(curr==str.length-2 && next==str.length-1) return true;
- swapNext(str, curr, next);
- if(rearrange(Arrays.copyOf(str,str.length), curr+1, curr+1)) return true;
- swap(str, curr, curr+1);
- if(rearrange(Arrays.copyOf(str,str.length), curr+1, curr+1)) return true;
- }
- }
- return false;
- }
- void swapNext(String[] s,int i, int j){
- String temp=s[i+1];
- s[i+1]=s[j];
- s[j]=temp;
- }
- void swap(String[] s,int i, int j){
- String temp=s[i];
- s[i]=s[j];
- s[j]=temp;
- }
- boolean strCompare(String s1, String s2){
- int err=1;
- for(int i=0;i<s1.length();i++){
- if(s1.charAt(i)!=s2.charAt(i)) err--;
- }
- System.out.println(s1+" | "+s2+" err"+ err);
- if(err==0) return true;
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement