网络平台代理合同,泉州网站建设优化公司,h5企业网站源码下载,长春网站建设phpjz原题链接#xff1a;383.赎金信
根据题意得出#xff0c;需要判断第一个字符串内的字符有没有都在第二个字符串内出现(会有重复字符)#xff0c;并且范围限制在26个英文小写字母 此时可以考虑用一个数组map 作哈希法映射操作 先将遍历第一个字符串#xff0c;并让每个字符…原题链接383.赎金信
根据题意得出需要判断第一个字符串内的字符有没有都在第二个字符串内出现(会有重复字符)并且范围限制在26个英文小写字母 此时可以考虑用一个数组map 作哈希法映射操作 先将遍历第一个字符串并让每个字符减去’a’,此时数组map的下标范围就为0~25,再进行即可 然后遍历第二个字符串遍历时让第二个字符串中的每个字符减去’a’,再进行–这时可以进行判断map[i]的值是不是大于0然后返回false因为只有大于0的情况才代表第一个字符串内存在第二个字符串中没有的字符 如果遍历完没有返回false那么就代表第一个字符串内的字符都在第二个字符串内出现过所以然会true
全代码
class Solution {
public:bool canConstruct(string ransomNote, string magazine) {int map[26] {0};for(int i 0; i ransomNote.size(); i){//map[i] - a代表的是当前英文字符减去 a ASCII码范围是在0~25,不理解可以带入ASCII码实数进行计算map[ransomNote[i] - a];}for(int i 0; imagazine.size(); i){map[magazine[i] - a]--;if(map[i] 0){return false;}}return true;}
};