题目地址:
https://www.lintcode.com/problem/ransom-note/description
给定两个字符串 s s s和 t t t,问 s s s是否可以由 t t t中的若干字符组成。
直接数一下即可。代码如下:
public class Solution {
/**
* @param ransomNote: a string
* @param magazine: a string
* @return: whether the ransom note can be constructed from the magazines
*/
public boolean canConstruct(String ransomNote, String magazine) {
// Write your code here
int[] rCount = new int[26], mCount = new int[26];
for (int i = 0; i < ransomNote.length(); i++) {
rCount[ransomNote.charAt(i) - 'a']++;
}
for (int i = 0; i < magazine.length(); i++) {
mCount[magazine.charAt(i) - 'a']++;
}
for (int i = 0; i < 26; i++) {
if (rCount[i] > mCount[i]) {
return false;
}
}
return true;
}
}
时间复杂度 O ( l s + l t ) O(l_s+l_t) O(ls+lt),空间 O ( 1 ) O(1) O(1)。