比较两个字符串中的字符,并交换

来源:互联网 发布:linux 程序运行权限 编辑:程序博客网 时间:2024/04/30 10:49

题目:比较两个长度相等的字符串,判断对应位置是否相等,求出交换不等的字符交换后的距离
例如:
asdfgh
qsdfdd

不等位置:0 4
交换后
gsdfah
dssfqd
距离还是5

    void solve() {           int len=in.nextInt();           char[] s = in.nextToken().toCharArray();           char[] t = in.nextToken().toCharArray();           boolean First=false;           boolean Second=false;           int left=-1;           int right=-1;          for(int i=0;i<len;i++){              int temp1=compare(s[i],t[i]);              int temp2=compare(s[len-1-i],t[len-1-i]);              if(temp1==-1 && temp2==-1 && i!=(len-1-i)){                  if(compare(s[i],t[len-1-i])==1 && compare(s[len-1-i],t[i])==1){                      out.println(len-2-2*i);                      out.println(i+" "+ (len-1-i));                  }else if(compare(s[i],t[len-1-i])==1 && compare(s[len-1-i],t[i])==-1 || compare(s[i],t[len-1-i])==-1 && compare(s[len-1-i],t[i])==1){                      out.println(len-1-2*i);                      out.println(i+" "+ (len-1-i));                  }else if(compare(s[i],t[len-1-i])==-1 && compare(s[len-1-i],t[i])==-1){                      out.println(len-2*i);                      out.println(i+" "+ (len-1-i));                  }              }else{                  out.println(-1);              }          }    }    int compare(char str1,char str2){        if(str1==str2){            return 1;        }else{            return -1;        }    }
0 0
原创粉丝点击