哈希思想——映射(C++)举例

简介: 哈希思想——映射(C++)举例

问题:

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。

解法:

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
           if(ransomNote.size()>magazine.size())
           {
           return false;
           }
        vector<int> cnt(26);
        for(auto &c:magazine)
        {
            cnt[c-'a']++;
        }
         for(auto &c: ransomNote)
        {
            cnt[c-'a']--;
            if( cnt[c-'a']<0)
            {
                return false;
            }
        }
        return true;
    }
};

核心思想:

用数组中的个元素一一映射26个字母,对数组进行++和--操作来代替写入和取出操作


相关文章
|
5月前
|
存储 算法 搜索推荐
《探秘C++》No.22 哈希
《探秘C++》No.22 哈希
46 0
|
6天前
|
存储 算法 数据安全/隐私保护
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
7 0
|
6天前
|
存储 Serverless C++
【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
10 1
|
20天前
|
存储 算法 C++
【C++高阶(六)】哈希的应用--位图&布隆过滤器
【C++高阶(六)】哈希的应用--位图&布隆过滤器
|
20天前
|
存储 Serverless C++
【C++高阶(五)】哈希思想--哈希表&哈希桶
【C++高阶(五)】哈希思想--哈希表&哈希桶
|
6月前
|
存储 人工智能 算法
【C++杂货铺】再谈哈希算法:位图 | 布隆过滤器 | 哈希切分
【C++杂货铺】再谈哈希算法:位图 | 布隆过滤器 | 哈希切分
45 0
【C++杂货铺】再谈哈希算法:位图 | 布隆过滤器 | 哈希切分
|
7月前
|
存储 算法 Shell
哈希表、哈希桶(C++实现)【STL】
哈希表、哈希桶(C++实现)【STL】
98 0
|
2月前
|
存储 C++
哈希的开放定址法的实现【C++】
哈希的开放定址法的实现【C++】
|
3月前
|
存储 编译器 Serverless
用C++实现一个哈希桶并封装实现 unordered_map 和 unordered_set
用C++实现一个哈希桶并封装实现 unordered_map 和 unordered_set
|
3月前
|
存储 算法 测试技术
C++ 哈希 开放定址法
C++ 哈希 开放定址法