给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。
给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。
测试样例:
"This is nowcoder","is This nowcoder"
返回:true
"Here you are","Are you here"
返回:false
第一次,自己写
import static java.util.Arrays.sort;
//
//给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。
// 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。
// 测试样例:
// "This is nowcoder","is This nowcoder"
// 返回:true
// "Here you are","Are you here"
// 返回:false
public class Same {
public boolean checkSam(String stringA, String stringB) {
char[] charA=stringA.toCharArray();
char[] charB=stringB.toCharArray();
if(charA.length != charB.length){
return false;
}
sort(charA);
sort(charB);
for(int i=0;i<charA.length;i++){
if(charA[i] != charB[i]){
return false;
}
}
return true;
// write code here
}
public static void main(String[] args){
String stringA="This is nowcoder";
String stringB="is This nowcoder";
System.out.println("it should be true:"+new Same().checkSam(stringA,stringB));
stringA="Here you are";
stringB="Are you here";
System.out.println("it should be false:"+new Same().checkSam(stringA,stringB));
}
}
牛客网网友思路
https://www.nowcoder.com/questionTerminal/164929d4acd04de5b0ee2d93047b3b20
优化我写的
public boolean checkSam(String stringA, String stringB) {
char[] c1 = stringA.toCharArray();
char[] c2 = stringB.toCharArray();
Arrays.sort(c1);
Arrays.sort(c2);
return Arrays.equals(c1, c2);
}
还有这个: