例如:给定两个字符串,ac和abc,对字符串abc重新排列生成acb包含字符串ac,则为包含
思路:
- 默认a为长度较长的字符串,若b的长度大于a的字符串长度,则交换引用。
- 构造一个hashmap,将长串的每个字符存入这个map,key为字符,value为字符的个数
- 遍历判断b串,用b串的字符作为key,若从map中获取不到value,则不包含
若获取到了value,map的value减1,若value小于0时,也不包含
public static void main(String[] args) throws Exception {
String a = "abc";
String b = "ac";
String t;
// a为大,b为小
if(() < ()){
t = a;
a= b;
b =t;
}
char[] aChars = ();
char[] bChars = ();
Map<Character,Integer> map = new HashMap<Character,Integer>();
//构造一个hashmap
for(int i = 0;i<();i++){
if((aChars[i]) == null){
(aChars[i],1);
}else{
(aChars[i],(aChars[i])+1);
}
}
//判断b串
for(int i=0;i<();i++){
if((bChars[i]) == null){
("不存在");
}else{
(bChars[i],(bChars[i])-1);
if((bChars[i]) < 0){
("不存在");
}
}
}
("存在");
}