(LeetCode 面试经典 150 题) 383. 赎金信 (哈希表)
题目:383. 赎金信
思路:哈希表,时间复杂度0(n)。
C++版本:
class Solution {
public:bool canConstruct(string ransomNote, string magazine) {if(ransomNote.size()>magazine.size()) return false;unordered_map<char,int> mp;for(auto x:magazine){mp[x]++;}for(auto x:ransomNote){mp[x]--;if(mp[x]<0) return false;}return true;}
};
JAVA版本:
class Solution {public boolean canConstruct(String ransomNote, String magazine) {if(ransomNote.length()>magazine.length()) return false;int[] mp=new int[30]; for(var x:magazine.toCharArray()){mp[x-'a']++;}for(var x:ransomNote.toCharArray()){mp[x-'a']--;if(mp[x-'a']<0) return false;}return true;}
}
GO版本:
func canConstruct(ransomNote string, magazine string) bool {if len(ransomNote)>len(magazine) {return false}mp:=make([]int,30)for _,x:=range magazine {mp[int(x-'a')]++}for _,x:=range ransomNote {mp[int(x-'a')]--if mp[int(x-'a')]<0 {return false}}return true
}