0
点赞
收藏
分享

微信扫一扫

Lintcode 比较字符串

崭新的韭菜 2022-12-01 阅读 125


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

样例

给出 A = "ABCD" B = "ACD",返回 true

给出 A = "ABCD" B = "AABC", 返回 false

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



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) {
// write your code here

if(B.size()>A.size())
return false;

/*map<char,int> map_A,map_B;

for(int i=0;i<A.size();i++){
map_A[A[i]]++;
}
for(int i=0;i<B.size();i++){
map_B[B[i]]++;
}

map<char,int>::iterator it=map_B.begin();
while(it!=map_B.end()){
int cnt=map_A.count(it->first);
if(cnt<it->second)
return false;
}

return true;
*/
//上面的程序超时

int letters[26];
memset(letters,0,sizeof(letters));

for(int i=0;i<A.size();i++){
letters[A[i]-'A']++;
}

for(int i=0;i<B.size();i++){
if(letters[B[i]-'A']<=0)
return false;
else{
letters[B[i]-'A']--;
}
}

return true;
}
};



举报

相关推荐

0 条评论