比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母
注意事项
在 A 中出现的 B 字符串里的字符不需要连续或者有序。
给出 A = "ABCD" B = "ACD",返回 true
给出 A = "ABCD" B = "AABC",
返回 false
public class Solution {
/**
* @param A : A string includes Upper Case letters
* @param B : A string includes Upper Case letter
* @return : if string A contains all of the characters in B return true else return false
*/
public boolean compareStrings(String A, String B) {
// write your code here
if(A==null)
return false;
if(B==null)
return true;
for(int i=0;i<B.length();i++){
char b = B.charAt(i);
int index = A.indexOf(b);
if(index == -1)//不存在字符b
return false;
else
{
String bb = String.valueOf(b);//char转String
A=A.replaceFirst(bb,"0");//替换第一个出现的字符串bb为“0”
}
}
return true;
}
}
【另一个方法】
public class Solution {
/**
* @param A : A string includes Upper Case letters
* @param B : A string includes Upper Case letter
* @return : if string A contains all of the characters in B return true else return false
*/
public boolean compareStrings(String A, String B) {
// write your code here
if(A==null)
return false;
if(B==null)
return true;
int[] count = new int[26];
Arrays.fill(count,0);//给数组全部赋值为0
for(int i=0;i<A.length();i++){
count[A.charAt(i)-'A']++;
}
for(int j=0;j<B.length();j++){
if(count[B.charAt(j)-'A']<=0)
return false;
else
count[B.charAt(j)-'A']--;
}
return true;
}
}
本文介绍了一种用于判断字符串A是否包含字符串B所有字符的有效算法。通过两种不同的实现方式,展示了如何确保A中至少包含了B中的每一个字符,不论其顺序如何。此算法适用于大写字母组成的字符串,对于字符串处理及验证具有实用价值。
3535

被折叠的 条评论
为什么被折叠?



