lintcode的页面总是刷不出来,好不容易刷出来提交一直在pending,一刷新网页又出不来了,不知道有没有人和我情况一样,我很抓狂啊现在!!!
题目要求:
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母
注意事项
在 A 中出现的 B 字符串里的字符不需要连续或者有序。
样例
给出 A = "ABCD"
B = "ACD"
,返回 true
给出 A = "ABCD"
B = "AABC"
, 返回 false
思路:
根据他样例给出的,当B里有两个“A”,A里只有一个的时候,返回的是false,这就说明只认可了前一个A存在于A组里,而第二个A相当于其他字符。
所以我的想法是遍历B组,双重循环,每次都遍历A组,如果找到有一样的了,就把A组的数改成1,这样下次再循环的时候就解决了上述问题。
需注意:A,B为空的时候。
代码:
class Solution {
public:
/*
* @param A: A string
* @param B: A string
* @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
int i, j;
bool ismatch = false;
if(B.length() == 0) return true;
for(i = 0; i < B.length(); i++){
for(j = 0; j < A.length(); j++){
if(A[j] == B[i]){
A[j] = '1';
ismatch = true;
break;
}
else{
ismatch = false;
}
}
if(!ismatch) return false;
}
if(ismatch) return true;
}
};