383. Ransom Note
来源:互联网 发布:吉林广电网络集团 编辑:程序博客网 时间:2024/06/06 05:12
Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.
Each letter in the magazine string can only be used once in your ransom note.
Note:
You may assume that both strings contain only lowercase letters.
canConstruct("a", "b") -> falsecanConstruct("aa", "ab") -> falsecanConstruct("aa", "aab") -> true
思路:
第一个想到的是将magazine的字母存入堆中,每次将note中的字母取出来找到magazine然后删除,找不到时返回false
但这样每次都会遍历一遍堆,所以采用牺牲空间,直接用map的方法,magazine映射到的单元加一,note的减一,这样时间效率变高
class Solution {public: vector<int> findAnagrams(string s, string p) { vector<int> pv(256,0), sv(256,0), res; if(s.size() < p.size()) return res; for(int i = 0; i < p.size(); ++i) { ++pv[p[i]]; ++sv[s[i]]; } if(pv == sv) res.push_back(0); for(int i = p.size(); i < s.size(); ++i) { ++sv[s[i]]; --sv[s[i-p.size()]]; if(pv == sv) res.push_back(i-p.size()+1); } return res; }};
阅读全文
0 0
- leetcode-383. Ransom Note
- [leetcode] 383. Ransom Note
- LeetCode 383. Ransom Note
- 383. Ransom Note*
- 383. Ransom Note
- leetcode 383. Ransom Note
- leetcode 383. Ransom Note
- 383. Ransom Note
- 383.[LeetCode]Ransom Note
- 383. Ransom Note
- 383. Ransom Note【E】
- leetcode 383. Ransom Note
- 383. Ransom Note
- 383. Ransom Note
- leetcode 383. Ransom Note
- Leetcode 383. Ransom Note
- 【leetcode】383. Ransom Note
- Leetcode 383. Ransom Note
- vs编译器一些常见错误
- js中字符串常用截取函数
- (47)按键绑定编辑器
- window.onload用法详解
- Zabbix-3.04 添加监控主机
- 383. Ransom Note
- [leetcode]306. Additive Number
- 告诉你们!我是怎么与Linux系统触电的!
- 手机/移动前端开发需要注意的20个要点
- 机房重构准备工作(4)--错误整理
- C++友元
- 商品添加-选择商品类型自动加载商品属性
- 如何解决类模板的分离编译问题?
- MongoDB远程连接 Login error的原因及解决办法 Linux shell 脚本命令