您的位置:首页 > 其它

Lintcode(2)-比较字符串

2015-06-16 14:53 411 查看
Q:

比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母

样例

给出 A = “ABCD” B = “ACD”,返回 true

给出 A = “ABCD” B = “AABC”, 返回 false

注意

在 A 中出现的 B 字符串里的字符不需要连续或者有序

A:

简单就不多说。

class Solution {
public:
/**
* @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
*/
bool compareStrings(string A, string B) {
typedef unsigned char uint8;
typedef unsigned int uint32;
uint32 a_length = A.length();
uint32 b_length = B.length();
if (a_length < b_length) {
return false;
}
static const int COUNT = 256;
int counts[COUNT];
::memset(counts, 0x0, COUNT*sizeof(int));
for (uint32 i = 0; i < a_length; ++i) {
counts[uint8(A[i])]++;
}
for (uint32 i = 0; i < b_length; ++i) {
uint8 ch = B[i];
if (!counts[ch])
return false;
counts[ch]--;
}
return true;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lintcode