点击查看答案
遍历`ransomNote`,对当前字符对应的数量进行减一操作(反向操作)。如果某个字符的数量小于0,则返回`false`。
## 步骤
1. 先对`magazine`进行字符和字数统计,结果存储在`Map`中。
```javascript
charToCount = new Map()
for (character in magazine) {
charToCount[character] += 1
}
```
2. 然后,遍历`ransomNote`,并对`Map`中的数据进行反向操作。如果某个字符的字数小于0,则返回`false`。
```javascript
charToCount = new Map()
for (character in magazine) {
charToCount[character] += 1
}
for (character in ransomNote) {
charToCount[character] -= 1
if (charToCount[character] < 0) {
return false
}
}
return true
```
## 复杂度
- 时间复杂度: `O(N)`.
- 空间复杂度: `O(N)`.
## Java
```java
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
var charToCount = new HashMap