day7
!!!!!!令人泪目。继删除一个链表的倒数第 n 个结点,这是独立完成的第二题!好耶
思路:就和有效字母异位差不多。
关键在于翻译题目:一个数组里面的所有元素,是否在另一个数组中出现过。
对同一个数组进行操作。先遍历 mbalbalbal ,让它 ++ ,再遍历 rbalbalbala 让它--。
如果 r 中出现的数,在m中没有出现过,那必然会出现 负数 ,那最后我们只需要判断数组中是否存在负数就可
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
// 也就是需要判断 一个数组中的所有元素,是否在另一个数组中出现过,只要有一个不在,就false
int hash[26] = {0};
for(char c : magazine )
hash[c - 'a']++;
for(char c : ransomNote)
hash[c - 'a']--;
for(int i = 0; i < 26 ; i++)
{
if(hash[i] < 0)
return false;
}
return true;
}
};