比較兩個字符串A和B,確定A中是否包含B中所有的字符。字符串A和B中的字符都是大寫字母
樣例
給出 A = "ABCD"
B = "ACD"
,返回 true
給出 A = "ABCD"
B = "AABC"
, 返回 false
注意
在 A 中出現的 B 字符串裏的字符不需要連續或者有序。
解題思路:
首先將字符串A,B轉換爲字符數組,並對字符數組進行排序,得到有序的字符數組。然後利用兩根指針查找A,B字符數組中相同的字符,並記錄相同字符的長度length。如何得到的長度length與字符串B的長度相同,那麼A中包含B中所有的字符,否則A中不包含B中所有的字符。
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
char[] ch1 = A.toCharArray();
char[] ch2 = B.toCharArray();
int i=0;
int j=0;
int flag =0;
Arrays.sort(ch1);
Arrays.sort(ch2);
if(B == null || B.length() <= 0)
return true;
else{
while(i < ch1.length&&j<ch2.length){
if(ch1[i] == ch2[j]) {
i++;
j++;
flag++;
}
else
if(ch1[i] >ch2[j]){
j++;
}
else{
i++;
}
}
if(flag == ch2.length)
return true;
else
return false;
}
}
}