给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。

给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。

测试样例:
"This is nowcoder","is This nowcoder"
返回:true
import java.util.*;

public class Same {
    public boolean checkSam(String stringA, String stringB) {
    
	      int lenA=stringA.length();
	      int lenB=stringB.length();
	      if(lenA!=lenB)return false;
	      char A[]=new char[lenA];
	      char B[]=new char[lenB];
	      A=stringA.toCharArray();
	      B=stringB.toCharArray();
	      for(int i=lenA-1;i>=0&&lenA<5000;i--){
	    	  char a=A[i];
	    	  boolean istrue=false;//表明B数组中是否剩有与A[i]相同的字符,标志初始化为false
	    	  for(int j=i;j>=0&&lenB<5000;j--){
	    		  char b=B[j];
	    		  if(b==a){
	    			  char temp=B[i];//将与在B数组中遍历到的第一个与A[i]相等的字符与B[i]位置互换
	    			  B[i]=b;
	    			  B[j]=temp; 
	    			  istrue=true;//找到与A[i]相同的字符,置为true
	    			  break;
	    		  }	  
	    	
	    	  }
	    	  if(istrue==false)return false;//没找到,则字符串AB不可能乱序同构
	      }
	     return true;
    }
}

你可能感兴趣的:(编程训练)