当前位置: 首页 > news >正文

江苏瀚和建设网站广州软件系统开发seo推广

江苏瀚和建设网站,广州软件系统开发seo推广,免费网站入口2022伊园,广州做外贸网站公司给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 来源:力扣&#xff0…

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/ransom-note

思路:

        本题判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成,但是这里需要注意两点。

  • 第一点“为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思”  这里说明杂志里面的字母不可重复使用。

  • 第二点 “你可以假设两个字符串均只含有小写字母。” 说明只有小写字母,这一点很重要

        因为题目所只有小写字母,那可以采用空间换取时间的哈希策略, 用一个长度为26的数组还记录magazine里字母出现的次数。

        然后再用ransomNote去验证这个数组是否包含了ransomNote所需要的所有字母。

        依然是数组在哈希法中的应用。

        为什么不用map呢?,因为在本题中,使用map的空间消耗比数组要大一些,因为map要维护红黑树或者哈希表,而且还要做哈希函数,是费时的!数据量大的话就能体现出来差别了。所以数组更加简单直接!

代码:

   

暴力解法:

// 时间复杂度: O(n^2)
// 空间复杂度:O(1)
class Solution {
public:bool canConstruct(string ransomNote, string magazine) {for (int i = 0; i < magazine.length(); i++) {for (int j = 0; j < ransomNote.length(); j++) {// 在ransomNote中找到和magazine相同的字符if (magazine[i] == ransomNote[j]) {ransomNote.erase(ransomNote.begin() + j); // ransomNote删除这个字符break;}}}// 如果ransomNote为空,则说明magazine的字符可以组成ransomNoteif (ransomNote.length() == 0) {return true;}return false;}
};

哈希解法:

// 时间复杂度: O(n)
// 空间复杂度:O(1)
class Solution {
public:bool canConstruct(string ransomNote, string magazine) {int record[26] = {0};//addif (ransomNote.size() > magazine.size()) {return false;}for (int i = 0; i < magazine.length(); i++) {// 通过recode数据记录 magazine里各个字符出现次数record[magazine[i]-'a'] ++;}for (int j = 0; j < ransomNote.length(); j++) {// 遍历ransomNote,在record里对应的字符个数做--操作record[ransomNote[j]-'a']--;// 如果小于零说明ransomNote里出现的字符,magazine没有if(record[ransomNote[j]-'a'] < 0) {return false;}}return true;}
};
http://www.mmbaike.com/news/81464.html

相关文章:

  • 茂名 网站建设洛阳市网站建设
  • 想自己做个网站在哪里做山西网络推广专业
  • 怎么看网站日志文件市场营销计划
  • 苏州做门户网站的公司扬州seo推广
  • 网站地址搜索北京seo推广优化
  • laravel如何做网站网站建设优化的技巧
  • 上海外贸网站设计win7运行速度提高90%
  • 免费咨询法律问题的网站seo技术好的培训机构
  • 网站建设 设计业务范围关键词推广软件
  • 邢台做网站推广费用网络营销策略有哪些
  • 事务所网站建设网络公司名字大全
  • 做网站只解析www的会怎么样新媒体代运营
  • 网站动态背景怎么做汕头seo不错
  • wordpress2019中文下载兰州网络优化seo
  • 网站播放大视频如何做网站推广入口
  • 甜点网站里的新闻资讯怎么做武汉网络seo公司
  • 怎样自己做刷赞网站竞价托管多少钱
  • dw怎么做网站标题图标百度指数人群画像哪里查询
  • 国内旅游网站排行榜东莞营销推广公司
  • 好发信息网站建设策划公司是做什么的
  • 广州市品牌网站建设企业网络推广怎么赚钱
  • 做外贸服饰哪个个网站好如何在百度推广自己
  • 阳江网络问政河南自助建站seo公司
  • 做网站 php asp.net jsp如何推广自己的产品
  • 网站建设 工商注册b站在线观看
  • 公司网站备案网址百度关键词快排
  • 济南 网站建设公司 医疗酒店seo是什么意思
  • 网站商品图片怎么做网络推广平台大全
  • 微店商城版值得开通吗百家号seo怎么做
  • 漳州做网站公司查权重工具