判断两个字符串是否由相同的字符组成
描述
判断两个字符串是否由相同的字符组成
分析
方法一,排序法。对两个字符串进行排序,然后在比较。
方法二,空间换时间。ascII字符共256个,对字符串1出现的字符在对应的数组里加1,对字符串1出现的字符在对应的数组里减1。
代码
方法一 排序法。
public class Test {
public static boolean compare(String s1,String s2){
if(s1.length()!=s2.length()) return false;
byte[] byte1=s1.getBytes();
byte[] byte2=s2.getBytes();
Arrays.sort(byte1);
Arrays.sort(byte2);
for(int i=0;i<s1.length();i++){
if(byte1[i]!=byte2[i]) return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(compare("zayyyy","zayyyy"));
}
}
方法二,空间换时间。
public class Test {
public static boolean compare(String s1,String s2){
if(s1.length()!=s2.length()) return false;
byte[] byte1=s1.getBytes();
byte[] byte2=s2.getBytes();
int[] charCount=new int[256]; //ascII 字符共有266个。
for(int i=0;i<s1.length();i++){
charCount[byte1[i]]++;
charCount[byte2[i]]--;
}
for(int i:charCount){
if(i!=0) return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(compare("zayyyy","zayyyb"));
}
}


浙公网安备 33010602011771号