package java程序员面试笔试宝典;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class 题8_6_2字符串是否由相同字符组成 {
public static void main(String[] args) {
String str1="bbaadca";
String str2="abcbaad";
System.out.println(isComSame_2(str1, str2));
}
//hashmap法
public static boolean isComSame_2(String str1,String str2){
if(str1==null||str2==null||str1.length()!=str2.length()){
return false;
}
char[] chs1=str1.toCharArray();
char[] chs2=str2.toCharArray();
Map<Character, Integer> map=new HashMap<Character, Integer>();
for (int i = 0; i < chs1.length; i++) {
if(map.containsKey(chs1[i])){
map.put(chs1[i], map.get(chs1[i])+1);
}else{
map.put(chs1[i], 1);
}
if(map.containsKey(chs2[i])){
map.put(chs2[i], map.get(chs2[i])-1);
}else{
map.put(chs2[i], -1);
}
}
for (Character c : map.keySet()) {
if(map.get(c)!=0){
return false;
}
}
return true;
}
//排序法1
public static boolean isComSame_1(String str1,String str2){
if(str1==null||str2==null){
return false;
}
byte[] s1=str1.getBytes();
byte[] s2=str2.getBytes();
Arrays.sort(s1);
Arrays.sort(s2);
String st1=new String(s1);
String st2=new String(s2);
return st1.equals(st2);
}
public static boolean isComSame_0(String str1,String str2){
if(str1==null||str2==null||str1.length()!=str2.length()){
return false;
}
int[] bitCount=new int[256];
for (int i = 0; i < str1.length(); i++) {
bitCount[str1.charAt(i)-'0']++;
}
for (int i = 0; i < str2.length(); i++) {
bitCount[str2.charAt(i)-'0']--;
}
for (int i = 0; i < bitCount.length; i++) {
if(bitCount[i]!=0){
return false;
}
}
return true;
}
//排序法
public static boolean isComSame(String str1,String str2){
if(str1==null||str2==null||str1.length()!=str2.length()){
return false;
}
char[] chs1=str1.toCharArray();
char[] chs2=str2.toCharArray();
Arrays.sort(chs1);
Arrays.sort(chs2);
for (int i = 0; i < chs1.length; i++) {
if(chs1[i]!=chs2[i]){
return false;
}
}
return true;
}
}
如何判断两个字符串是否由相同的字符组成
猜你喜欢
转载自blog.csdn.net/m0_38068868/article/details/81738748
今日推荐
周排行