Skip to content

Commit a34c67a

Browse files
committed
feat: add solutions to lc problem: No.1189
No.1189.Maximum Number of Balloons
1 parent 6c0510a commit a34c67a

File tree

6 files changed

+188
-2
lines changed

6 files changed

+188
-2
lines changed

solution/1100-1199/1189.Maximum Number of Balloons/README.md

+67-1
Original file line numberDiff line numberDiff line change
@@ -47,22 +47,88 @@
4747

4848
<!-- 这里可写通用的实现逻辑 -->
4949

50+
简单计数。
51+
5052
<!-- tabs:start -->
5153

5254
### **Python3**
5355

5456
<!-- 这里可写当前语言的特殊实现逻辑 -->
5557

5658
```python
57-
59+
class Solution:
60+
def maxNumberOfBalloons(self, text: str) -> int:
61+
ans = 0
62+
counter = Counter(text)
63+
counter['l'] >>= 1
64+
counter['o'] >>= 1
65+
return min(counter['b'], counter['a'], counter['l'], counter['o'], counter['n'])
5866
```
5967

6068
### **Java**
6169

6270
<!-- 这里可写当前语言的特殊实现逻辑 -->
6371

6472
```java
73+
class Solution {
74+
public int maxNumberOfBalloons(String text) {
75+
int[] counter = new int[26];
76+
for (char c : text.toCharArray()) {
77+
++counter[c - 'a'];
78+
}
79+
counter['l' - 'a'] >>= 1;
80+
counter['o' - 'a'] >>= 1;
81+
int ans = 10000;
82+
for (char c : "balon".toCharArray()) {
83+
ans = Math.min(ans, counter[c - 'a']);
84+
}
85+
return ans;
86+
}
87+
}
88+
```
89+
90+
### **C++**
91+
92+
```cpp
93+
class Solution {
94+
public:
95+
int maxNumberOfBalloons(string text) {
96+
vector<int> counter(26);
97+
for (char& c : text) ++counter[c - 'a'];
98+
counter['l' - 'a'] >>= 1;
99+
counter['o' - 'a'] >>= 1;
100+
int ans = 10000;
101+
string t = "balon";
102+
for (char& c : t) ans = min(ans, counter[c - 'a']);
103+
return ans;
104+
}
105+
};
106+
```
65107
108+
### **Go**
109+
110+
```go
111+
func maxNumberOfBalloons(text string) int {
112+
counter := make([]int, 26)
113+
for i := range text {
114+
counter[text[i]-'a']++
115+
}
116+
counter['l'-'a'] >>= 1
117+
counter['o'-'a'] >>= 1
118+
ans := 10000
119+
t := "balon"
120+
for i := range t {
121+
ans = min(ans, counter[t[i]-'a'])
122+
}
123+
return ans
124+
}
125+
126+
func min(a, b int) int {
127+
if a < b {
128+
return a
129+
}
130+
return b
131+
}
66132
```
67133

68134
### **...**

solution/1100-1199/1189.Maximum Number of Balloons/README_EN.md

+65-1
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,77 @@
4949
### **Python3**
5050

5151
```python
52-
52+
class Solution:
53+
def maxNumberOfBalloons(self, text: str) -> int:
54+
ans = 0
55+
counter = Counter(text)
56+
counter['l'] >>= 1
57+
counter['o'] >>= 1
58+
return min(counter['b'], counter['a'], counter['l'], counter['o'], counter['n'])
5359
```
5460

5561
### **Java**
5662

5763
```java
64+
class Solution {
65+
public int maxNumberOfBalloons(String text) {
66+
int[] counter = new int[26];
67+
for (char c : text.toCharArray()) {
68+
++counter[c - 'a'];
69+
}
70+
counter['l' - 'a'] >>= 1;
71+
counter['o' - 'a'] >>= 1;
72+
int ans = 10000;
73+
for (char c : "balon".toCharArray()) {
74+
ans = Math.min(ans, counter[c - 'a']);
75+
}
76+
return ans;
77+
}
78+
}
79+
```
80+
81+
### **C++**
82+
83+
```cpp
84+
class Solution {
85+
public:
86+
int maxNumberOfBalloons(string text) {
87+
vector<int> counter(26);
88+
for (char& c : text) ++counter[c - 'a'];
89+
counter['l' - 'a'] >>= 1;
90+
counter['o' - 'a'] >>= 1;
91+
int ans = 10000;
92+
string t = "balon";
93+
for (char& c : t) ans = min(ans, counter[c - 'a']);
94+
return ans;
95+
}
96+
};
97+
```
5898
99+
### **Go**
100+
101+
```go
102+
func maxNumberOfBalloons(text string) int {
103+
counter := make([]int, 26)
104+
for i := range text {
105+
counter[text[i]-'a']++
106+
}
107+
counter['l'-'a'] >>= 1
108+
counter['o'-'a'] >>= 1
109+
ans := 10000
110+
t := "balon"
111+
for i := range t {
112+
ans = min(ans, counter[t[i]-'a'])
113+
}
114+
return ans
115+
}
116+
117+
func min(a, b int) int {
118+
if a < b {
119+
return a
120+
}
121+
return b
122+
}
59123
```
60124

61125
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
int maxNumberOfBalloons(string text) {
4+
vector<int> counter(26);
5+
for (char& c : text) ++counter[c - 'a'];
6+
counter['l' - 'a'] >>= 1;
7+
counter['o' - 'a'] >>= 1;
8+
int ans = 10000;
9+
string t = "balon";
10+
for (char& c : t) ans = min(ans, counter[c - 'a']);
11+
return ans;
12+
}
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
func maxNumberOfBalloons(text string) int {
2+
counter := make([]int, 26)
3+
for i := range text {
4+
counter[text[i]-'a']++
5+
}
6+
counter['l'-'a'] >>= 1
7+
counter['o'-'a'] >>= 1
8+
ans := 10000
9+
t := "balon"
10+
for i := range t {
11+
ans = min(ans, counter[t[i]-'a'])
12+
}
13+
return ans
14+
}
15+
16+
func min(a, b int) int {
17+
if a < b {
18+
return a
19+
}
20+
return b
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public int maxNumberOfBalloons(String text) {
3+
int[] counter = new int[26];
4+
for (char c : text.toCharArray()) {
5+
++counter[c - 'a'];
6+
}
7+
counter['l' - 'a'] >>= 1;
8+
counter['o' - 'a'] >>= 1;
9+
int ans = 10000;
10+
for (char c : "balon".toCharArray()) {
11+
ans = Math.min(ans, counter[c - 'a']);
12+
}
13+
return ans;
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def maxNumberOfBalloons(self, text: str) -> int:
3+
ans = 0
4+
counter = Counter(text)
5+
counter['l'] >>= 1
6+
counter['o'] >>= 1
7+
return min(counter['b'], counter['a'], counter['l'], counter['o'], counter['n'])

0 commit comments

Comments
 (0)