Skip to content

Commit dc607f2

Browse files
committedJul 9, 2022
feat: update solutions to lc problems: No.0859,0860
* No.0859.Buddy Strings * No.0860.Lemonade Change
1 parent 2809659 commit dc607f2

File tree

9 files changed

+219
-70
lines changed

9 files changed

+219
-70
lines changed
 

Diff for: ‎solution/0800-0899/0859.Buddy Strings/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ class Solution:
6363
m, n = len(s), len(goal)
6464
if m != n:
6565
return False
66-
diff = sum(1 for i in range(n) if s[i] != goal[i])
6766
cnt1, cnt2 = Counter(s), Counter(goal)
6867
if cnt1 != cnt2:
6968
return False
70-
return diff == 2 or (diff == 0 and any(e > 1 for e in cnt1.values()))
69+
diff = sum(s[i] != goal[i] for i in range(n))
70+
return diff == 2 or (diff == 0 and any(v > 1 for v in cnt1.values()))
7171
```
7272

7373
### **Java**

Diff for: ‎solution/0800-0899/0859.Buddy Strings/README_EN.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ class Solution:
5757
m, n = len(s), len(goal)
5858
if m != n:
5959
return False
60-
diff = sum(1 for i in range(n) if s[i] != goal[i])
6160
cnt1, cnt2 = Counter(s), Counter(goal)
6261
if cnt1 != cnt2:
6362
return False
64-
return diff == 2 or (diff == 0 and any(e > 1 for e in cnt1.values()))
63+
diff = sum(s[i] != goal[i] for i in range(n))
64+
return diff == 2 or (diff == 0 and any(v > 1 for v in cnt1.values()))
6565
```
6666

6767
### **Java**

Diff for: ‎solution/0800-0899/0859.Buddy Strings/Solution.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ def buddyStrings(self, s: str, goal: str) -> bool:
33
m, n = len(s), len(goal)
44
if m != n:
55
return False
6-
diff = sum(1 for i in range(n) if s[i] != goal[i])
76
cnt1, cnt2 = Counter(s), Counter(goal)
87
if cnt1 != cnt2:
98
return False
10-
return diff == 2 or (diff == 0 and any(e > 1 for e in cnt1.values()))
9+
diff = sum(s[i] != goal[i] for i in range(n))
10+
return diff == 2 or (diff == 0 and any(v > 1 for v in cnt1.values()))

Diff for: ‎solution/0800-0899/0860.Lemonade Change/README.md

+74-21
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@
6262
```python
6363
class Solution:
6464
def lemonadeChange(self, bills: List[int]) -> bool:
65-
five, ten = 0, 0
66-
for bill in bills:
67-
if bill == 5:
65+
five = ten = 0
66+
for v in bills:
67+
if v == 5:
6868
five += 1
69-
elif bill == 10:
69+
elif v == 10:
7070
ten += 1
7171
five -= 1
72-
elif bill == 20:
73-
if ten > 0:
72+
else:
73+
if ten:
7474
ten -= 1
7575
five -= 1
7676
else:
@@ -87,31 +87,84 @@ class Solution:
8787
```java
8888
class Solution {
8989
public boolean lemonadeChange(int[] bills) {
90-
int fives = 0, tens = 0;
91-
for (int bill : bills) {
92-
if (bill == 5) {
93-
++fives;
94-
} else if (bill == 10) {
95-
++tens;
96-
if (--fives < 0) {
97-
return false;
98-
}
90+
int five = 0, ten = 0;
91+
for (int v : bills) {
92+
if (v == 5) {
93+
++five;
94+
} else if (v == 10) {
95+
++ten;
96+
--five;
9997
} else {
100-
if (tens >= 1 && fives >= 1) {
101-
--tens;
102-
--fives;
103-
} else if (fives >= 3) {
104-
fives -= 3;
98+
if (ten > 0) {
99+
--ten;
100+
--five;
105101
} else {
106-
return false;
102+
five -= 3;
107103
}
108104
}
105+
if (five < 0) {
106+
return false;
107+
}
109108
}
110109
return true;
111110
}
112111
}
113112
```
114113

114+
### **C++**
115+
116+
```cpp
117+
class Solution {
118+
public:
119+
bool lemonadeChange(vector<int>& bills) {
120+
int five = 0, ten = 0;
121+
for (int v : bills)
122+
{
123+
if (v == 5) ++five;
124+
else if (v == 10)
125+
{
126+
++ten;
127+
--five;
128+
}
129+
else
130+
{
131+
if (ten) --ten, --five;
132+
else five -= 3;
133+
}
134+
if (five < 0) return false;
135+
}
136+
return true;
137+
}
138+
};
139+
```
140+
141+
### **Go**
142+
143+
```go
144+
func lemonadeChange(bills []int) bool {
145+
five, ten := 0, 0
146+
for _, v := range bills {
147+
if v == 5 {
148+
five++
149+
} else if v == 10 {
150+
ten++
151+
five--
152+
} else {
153+
if ten > 0 {
154+
ten--
155+
five--
156+
} else {
157+
five -= 3
158+
}
159+
}
160+
if five < 0 {
161+
return false
162+
}
163+
}
164+
return true
165+
}
166+
```
167+
115168
### **TypeScript**
116169

117170
```ts

Diff for: ‎solution/0800-0899/0860.Lemonade Change/README_EN.md

+74-21
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ Since not every customer received the correct change, the answer is false.
5252
```python
5353
class Solution:
5454
def lemonadeChange(self, bills: List[int]) -> bool:
55-
five, ten = 0, 0
56-
for bill in bills:
57-
if bill == 5:
55+
five = ten = 0
56+
for v in bills:
57+
if v == 5:
5858
five += 1
59-
elif bill == 10:
59+
elif v == 10:
6060
ten += 1
6161
five -= 1
62-
elif bill == 20:
63-
if ten > 0:
62+
else:
63+
if ten:
6464
ten -= 1
6565
five -= 1
6666
else:
@@ -75,31 +75,84 @@ class Solution:
7575
```java
7676
class Solution {
7777
public boolean lemonadeChange(int[] bills) {
78-
int fives = 0, tens = 0;
79-
for (int bill : bills) {
80-
if (bill == 5) {
81-
++fives;
82-
} else if (bill == 10) {
83-
++tens;
84-
if (--fives < 0) {
85-
return false;
86-
}
78+
int five = 0, ten = 0;
79+
for (int v : bills) {
80+
if (v == 5) {
81+
++five;
82+
} else if (v == 10) {
83+
++ten;
84+
--five;
8785
} else {
88-
if (tens >= 1 && fives >= 1) {
89-
--tens;
90-
--fives;
91-
} else if (fives >= 3) {
92-
fives -= 3;
86+
if (ten > 0) {
87+
--ten;
88+
--five;
9389
} else {
94-
return false;
90+
five -= 3;
9591
}
9692
}
93+
if (five < 0) {
94+
return false;
95+
}
9796
}
9897
return true;
9998
}
10099
}
101100
```
102101

102+
### **C++**
103+
104+
```cpp
105+
class Solution {
106+
public:
107+
bool lemonadeChange(vector<int>& bills) {
108+
int five = 0, ten = 0;
109+
for (int v : bills)
110+
{
111+
if (v == 5) ++five;
112+
else if (v == 10)
113+
{
114+
++ten;
115+
--five;
116+
}
117+
else
118+
{
119+
if (ten) --ten, --five;
120+
else five -= 3;
121+
}
122+
if (five < 0) return false;
123+
}
124+
return true;
125+
}
126+
};
127+
```
128+
129+
### **Go**
130+
131+
```go
132+
func lemonadeChange(bills []int) bool {
133+
five, ten := 0, 0
134+
for _, v := range bills {
135+
if v == 5 {
136+
five++
137+
} else if v == 10 {
138+
ten++
139+
five--
140+
} else {
141+
if ten > 0 {
142+
ten--
143+
five--
144+
} else {
145+
five -= 3
146+
}
147+
}
148+
if five < 0 {
149+
return false
150+
}
151+
}
152+
return true
153+
}
154+
```
155+
103156
### **TypeScript**
104157

105158
```ts

Diff for: ‎solution/0800-0899/0860.Lemonade Change/Solution.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
public:
3+
bool lemonadeChange(vector<int>& bills) {
4+
int five = 0, ten = 0;
5+
for (int v : bills)
6+
{
7+
if (v == 5) ++five;
8+
else if (v == 10)
9+
{
10+
++ten;
11+
--five;
12+
}
13+
else
14+
{
15+
if (ten) --ten, --five;
16+
else five -= 3;
17+
}
18+
if (five < 0) return false;
19+
}
20+
return true;
21+
}
22+
};

Diff for: ‎solution/0800-0899/0860.Lemonade Change/Solution.go

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
func lemonadeChange(bills []int) bool {
2+
five, ten := 0, 0
3+
for _, v := range bills {
4+
if v == 5 {
5+
five++
6+
} else if v == 10 {
7+
ten++
8+
five--
9+
} else {
10+
if ten > 0 {
11+
ten--
12+
five--
13+
} else {
14+
five -= 3
15+
}
16+
}
17+
if five < 0 {
18+
return false
19+
}
20+
}
21+
return true
22+
}
+15-16
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
class Solution {
22
public boolean lemonadeChange(int[] bills) {
3-
int fives = 0, tens = 0;
4-
for (int bill : bills) {
5-
if (bill == 5) {
6-
++fives;
7-
} else if (bill == 10) {
8-
++tens;
9-
if (--fives < 0) {
10-
return false;
11-
}
3+
int five = 0, ten = 0;
4+
for (int v : bills) {
5+
if (v == 5) {
6+
++five;
7+
} else if (v == 10) {
8+
++ten;
9+
--five;
1210
} else {
13-
if (tens >= 1 && fives >= 1) {
14-
--tens;
15-
--fives;
16-
} else if (fives >= 3) {
17-
fives -= 3;
11+
if (ten > 0) {
12+
--ten;
13+
--five;
1814
} else {
19-
return false;
15+
five -= 3;
2016
}
2117
}
18+
if (five < 0) {
19+
return false;
20+
}
2221
}
2322
return true;
2423
}
25-
}
24+
}

Diff for: ‎solution/0800-0899/0860.Lemonade Change/Solution.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
class Solution:
22
def lemonadeChange(self, bills: List[int]) -> bool:
3-
five, ten = 0, 0
4-
for bill in bills:
5-
if bill == 5:
3+
five = ten = 0
4+
for v in bills:
5+
if v == 5:
66
five += 1
7-
elif bill == 10:
7+
elif v == 10:
88
ten += 1
99
five -= 1
10-
elif bill == 20:
11-
if ten > 0:
10+
else:
11+
if ten:
1212
ten -= 1
1313
five -= 1
1414
else:

0 commit comments

Comments
 (0)
Please sign in to comment.