LeetCode383. Ransom Note优雅解法(线性时间复杂度)

原创 2016年08月29日 23:46:20


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") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
        int pool[26] = {0};
        for (char c : magazine) {
            pool[c-'a']++;
        }
        for (char c : ransomNote) {
            if (pool[c-'a'] > 0) {
                pool[c-'a']--;
            } else {
                return false;
            }
        }
        return true;
    }
};



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MIT:算法导论——2.渐近符号、递归及解法_和连续子数组的最大和、主方法/主定理求时间复杂度

#if 0 三种求解递归式的方法,即算法的O渐近界的方法: (1)代入法:猜测一个界,然后用 数学归纳法证明 这个界正确。 (2)递归树法:将递归式转换为一棵递归树。其结点表示不同层次的递归调用...

关于斐波那契数列三种解法及时间复杂度分析

斐波那契数列: f(n)=f(n-1)+f(n-2); n>=2 f(0)=0; f(1)=1; 即有名的兔子繁衍问题。 斐...

【数据结构】线性结构:存储&运算&时间复杂度

1、 逻辑结构:表内元素的关系,共有集合、线性结构(线性表、栈、队列、数组)、树形结构(树、二叉树、森林)、图结构(图)四种; 存储结构:是数据在计算机中的实现,也叫物理结构,常用的是顺序存储和链式存...

大话数据结构-时间复杂度,线性表,栈,队列

算法时间复杂度,空间复杂度计算log2n,常数阶,线性阶,对数阶(count*2),平方阶,指数阶 算法设计要求:正确性,可读性,高效率,低存储量,健壮性。事前估算方法, 线性表,前驱,后...

算法导论-最大子数组问题-线性时间复杂度算法分析与实现

之前写了最大子数组问题的分治法,今天把这个问题的线性时间复杂度的算法写出来。 这个方法在算法导论最大子数组问题的课后思考题里面提出来了,只是说的不够详细。 思考题如下:使用如下思想为最大子数组问题设计...

【稀疏矩阵转置】线性时间复杂度实现稀疏矩阵转置

Think: 1知识点:线性时间复杂度实现稀疏矩阵转置 2方法: (1):通过三元组记录初始输入信息 (2):记录每一列的元素个数 (3):求得记录每一列的第一个元素应放置的转置三元组的位置...

选择问题(线性时间复杂度)

采用分治策略找出第K小的元素!要求程序的时间复杂度为线性函数。 #include #include #include #include #include using namespace std; ...

在线性时间复杂度内求解第k小元素问题

给定n个元素,要求解其中第k小的元素,一般采用先排序后然后直接得结果的过程。在数据量小的情况下没问题,时间复杂度是O(n*logn). 但是当数据量非常大的时候就要考虑是否有更好的算法来代替全局排序。...

排序0-n^k-1范围内的n个数,要求时间复杂度为线性

题目:给定n个范围在0-n^k-1范围内的整数,找出一种排序算法使得在O(n)的时间内将这n个数排序 思路:根据决策树模型,比较排序的时间下线为nlgn,所以不可能指望比较排序算法了。我们已...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode383. Ransom Note优雅解法(线性时间复杂度)
举报原因:
原因补充:

(最多只允许输入30个字)