怎么做教育类型的网站,2018钓鱼网站建设,lisp 网站开发,天津网站建设哪家公司好【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主#xff0c;题解使用C语言。#xff08;若有使用其他语言的同学也可了解题解思路#xff0c;本质上语法内容一致题解使用C语言。若有使用其他语言的同学也可了解题解思路本质上语法内容一致 【题目描述】
给你两个字符串ransomNote 和 magazine 判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以返回 true 否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
【示例一】
输入ransomNote a, magazine b
输出false
【示例二】
输入ransomNote aa, magazine ab
输出false
【示例三】
输入ransomNote aa, magazine aab
输出true
【提示及数据范围】
1 ransomNote.length, magazine.length 10的5次方ransomNote 和 magazine 由小写英文字母组成
【代码】
// 初始化一个字母数组遍历第二个数组字母对应位置加1
// 再遍历第一个数组字母对应位置减1判断是否小于0class Solution {
public:bool canConstruct(string ransomNote, string magazine) {if (ransomNote.size() magazine.size()) {return false;}vectorint 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;}
};