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

题目:比较两个长度相等的字符串,判断对应位置是否相等,求出交换不等的字符交换后的距离
例如:
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;
        }
    }

你可能感兴趣的:(比较两个字符串中的字符,并交换)