2626 <li>You may assume that both strings contain only lowercase letters.</li>
2727</ul >
2828
29-
3029## Solutions
3130
3231<!-- tabs:start -->
3635``` python
3736class Solution :
3837 def canConstruct (self , ransomNote : str , magazine : str ) -> bool :
39- chars = {}
40- for i in magazine:
41- chars[i] = chars.get(i, 0 ) + 1
42- for i in ransomNote:
43- if not chars.get(i):
38+ counter = Counter(magazine)
39+ for c in ransomNote:
40+ if counter[c] <= 0 :
4441 return False
45- chars[i ] -= 1
42+ counter[c ] -= 1
4643 return True
4744```
4845
@@ -51,15 +48,15 @@ class Solution:
5148``` java
5249class Solution {
5350 public boolean canConstruct (String ransomNote , String magazine ) {
54- int [] chars = new int [26 ];
55- for (int i = 0 , n = magazine. length(); i < n; ++ i) {
56- int idx = magazine. charAt(i) - ' a' ;
57- ++ chars[idx];
51+ int [] counter = new int [26 ];
52+ for (char c : magazine. toCharArray()) {
53+ ++ counter[c - ' a' ];
5854 }
59- for (int i = 0 , n = ransomNote. length(); i < n; ++ i) {
60- int idx = ransomNote. charAt(i) - ' a' ;
61- if (chars[idx] == 0 ) return false ;
62- -- chars[idx];
55+ for (char c : ransomNote. toCharArray()) {
56+ if (counter[c - ' a' ] <= 0 ) {
57+ return false ;
58+ }
59+ -- counter[c - ' a' ];
6360 }
6461 return true ;
6562 }
@@ -84,6 +81,24 @@ function canConstruct(ransomNote: string, magazine: string): boolean {
8481};
8582```
8683
84+ ### ** C++**
85+
86+ ``` cpp
87+ class Solution {
88+ public:
89+ bool canConstruct(string ransomNote, string magazine) {
90+ vector<int > counter(26);
91+ for (char c : magazine) ++counter[ c - 'a'] ;
92+ for (char c : ransomNote)
93+ {
94+ if (counter[ c - 'a'] <= 0) return false;
95+ --counter[ c - 'a'] ;
96+ }
97+ return true;
98+ }
99+ };
100+ ```
101+
87102### **Go**
88103
89104```go
0 commit comments