Skip to content

Commit b29a407

Browse files
committed
feat: update solutions to lc problem: No.2390
No.2390.Removing Stars From a String
1 parent d3b0cc9 commit b29a407

File tree

7 files changed

+68
-63
lines changed

7 files changed

+68
-63
lines changed

Diff for: solution/2300-2399/2390.Removing Stars From a String/README.md

+24-23
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@
6161

6262
**方法一:栈模拟**
6363

64-
我们可以使用栈模拟操作过程。
65-
66-
遍历字符串 $s$,如果当前字符不是星号,则将其入栈;如果当前字符是星号,则将栈顶元素出栈。
64+
我们可以使用栈模拟操作过程。遍历字符串 $s$,如果当前字符不是星号,则将其入栈;如果当前字符是星号,则将栈顶元素出栈。
6765

6866
最后我们将栈中元素拼接成字符串返回即可。
6967

@@ -78,13 +76,13 @@
7876
```python
7977
class Solution:
8078
def removeStars(self, s: str) -> str:
81-
stk = []
79+
ans = []
8280
for c in s:
8381
if c == '*':
84-
stk.pop()
82+
ans.pop()
8583
else:
86-
stk.append(c)
87-
return ''.join(stk)
84+
ans.append(c)
85+
return ''.join(ans)
8886
```
8987

9088
### **Java**
@@ -94,15 +92,15 @@ class Solution:
9492
```java
9593
class Solution {
9694
public String removeStars(String s) {
97-
StringBuilder sb = new StringBuilder();
98-
for (char c : s.toCharArray()) {
99-
if (c == '*') {
100-
sb.deleteCharAt(sb.length() - 1);
95+
StringBuilder ans = new StringBuilder();
96+
for (int i = 0; i < s.length(); ++i) {
97+
if (s.charAt(i) == '*') {
98+
ans.deleteCharAt(ans.length() - 1);
10199
} else {
102-
sb.append(c);
100+
ans.append(s.charAt(i));
103101
}
104102
}
105-
return sb.toString();
103+
return ans.toString();
106104
}
107105
}
108106
```
@@ -115,8 +113,11 @@ public:
115113
string removeStars(string s) {
116114
string ans;
117115
for (char c : s) {
118-
if (c == '*') ans.pop_back();
119-
else ans.push_back(c);
116+
if (c == '*') {
117+
ans.pop_back();
118+
} else {
119+
ans.push_back(c);
120+
}
120121
}
121122
return ans;
122123
}
@@ -143,15 +144,15 @@ func removeStars(s string) string {
143144

144145
```ts
145146
function removeStars(s: string): string {
146-
const stack = [];
147+
const ans: string[] = [];
147148
for (const c of s) {
148149
if (c === '*') {
149-
stack.pop();
150+
ans.pop();
150151
} else {
151-
stack.push(c);
152+
ans.push(c);
152153
}
153154
}
154-
return stack.join('');
155+
return ans.join('');
155156
}
156157
```
157158

@@ -160,15 +161,15 @@ function removeStars(s: string): string {
160161
```rust
161162
impl Solution {
162163
pub fn remove_stars(s: String) -> String {
163-
let mut res = String::new();
164+
let mut ans = String::new();
164165
for &c in s.as_bytes().iter() {
165166
if c == b'*' {
166-
res.pop();
167+
ans.pop();
167168
} else {
168-
res.push(char::from(c));
169+
ans.push(char::from(c));
169170
}
170171
}
171-
res
172+
ans
172173
}
173174
}
174175
```

Diff for: solution/2300-2399/2390.Removing Stars From a String/README_EN.md

+23-20
Original file line numberDiff line numberDiff line change
@@ -60,29 +60,29 @@ There are no more stars, so we return &quot;lecoe&quot;.</pre>
6060
```python
6161
class Solution:
6262
def removeStars(self, s: str) -> str:
63-
stk = []
63+
ans = []
6464
for c in s:
6565
if c == '*':
66-
stk.pop()
66+
ans.pop()
6767
else:
68-
stk.append(c)
69-
return ''.join(stk)
68+
ans.append(c)
69+
return ''.join(ans)
7070
```
7171

7272
### **Java**
7373

7474
```java
7575
class Solution {
7676
public String removeStars(String s) {
77-
StringBuilder sb = new StringBuilder();
78-
for (char c : s.toCharArray()) {
79-
if (c == '*') {
80-
sb.deleteCharAt(sb.length() - 1);
77+
StringBuilder ans = new StringBuilder();
78+
for (int i = 0; i < s.length(); ++i) {
79+
if (s.charAt(i) == '*') {
80+
ans.deleteCharAt(ans.length() - 1);
8181
} else {
82-
sb.append(c);
82+
ans.append(s.charAt(i));
8383
}
8484
}
85-
return sb.toString();
85+
return ans.toString();
8686
}
8787
}
8888
```
@@ -95,8 +95,11 @@ public:
9595
string removeStars(string s) {
9696
string ans;
9797
for (char c : s) {
98-
if (c == '*') ans.pop_back();
99-
else ans.push_back(c);
98+
if (c == '*') {
99+
ans.pop_back();
100+
} else {
101+
ans.push_back(c);
102+
}
100103
}
101104
return ans;
102105
}
@@ -123,15 +126,15 @@ func removeStars(s string) string {
123126

124127
```ts
125128
function removeStars(s: string): string {
126-
const stack = [];
129+
const ans: string[] = [];
127130
for (const c of s) {
128131
if (c === '*') {
129-
stack.pop();
132+
ans.pop();
130133
} else {
131-
stack.push(c);
134+
ans.push(c);
132135
}
133136
}
134-
return stack.join('');
137+
return ans.join('');
135138
}
136139
```
137140

@@ -140,15 +143,15 @@ function removeStars(s: string): string {
140143
```rust
141144
impl Solution {
142145
pub fn remove_stars(s: String) -> String {
143-
let mut res = String::new();
146+
let mut ans = String::new();
144147
for &c in s.as_bytes().iter() {
145148
if c == b'*' {
146-
res.pop();
149+
ans.pop();
147150
} else {
148-
res.push(char::from(c));
151+
ans.push(char::from(c));
149152
}
150153
}
151-
res
154+
ans
152155
}
153156
}
154157
```

Diff for: solution/2300-2399/2390.Removing Stars From a String/Solution.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ class Solution {
33
string removeStars(string s) {
44
string ans;
55
for (char c : s) {
6-
if (c == '*')
6+
if (c == '*') {
77
ans.pop_back();
8-
else
8+
} else {
99
ans.push_back(c);
10+
}
1011
}
1112
return ans;
1213
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
class Solution {
22
public String removeStars(String s) {
3-
StringBuilder sb = new StringBuilder();
4-
for (char c : s.toCharArray()) {
5-
if (c == '*') {
6-
sb.deleteCharAt(sb.length() - 1);
3+
StringBuilder ans = new StringBuilder();
4+
for (int i = 0; i < s.length(); ++i) {
5+
if (s.charAt(i) == '*') {
6+
ans.deleteCharAt(ans.length() - 1);
77
} else {
8-
sb.append(c);
8+
ans.append(s.charAt(i));
99
}
1010
}
11-
return sb.toString();
11+
return ans.toString();
1212
}
1313
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
class Solution:
22
def removeStars(self, s: str) -> str:
3-
stk = []
3+
ans = []
44
for c in s:
55
if c == '*':
6-
stk.pop()
6+
ans.pop()
77
else:
8-
stk.append(c)
9-
return ''.join(stk)
8+
ans.append(c)
9+
return ''.join(ans)
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
impl Solution {
22
pub fn remove_stars(s: String) -> String {
3-
let mut res = String::new();
3+
let mut ans = String::new();
44
for &c in s.as_bytes().iter() {
55
if c == b'*' {
6-
res.pop();
6+
ans.pop();
77
} else {
8-
res.push(char::from(c));
8+
ans.push(char::from(c));
99
}
1010
}
11-
res
11+
ans
1212
}
1313
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
function removeStars(s: string): string {
2-
const stack = [];
2+
const ans: string[] = [];
33
for (const c of s) {
44
if (c === '*') {
5-
stack.pop();
5+
ans.pop();
66
} else {
7-
stack.push(c);
7+
ans.push(c);
88
}
99
}
10-
return stack.join('');
10+
return ans.join('');
1111
}

0 commit comments

Comments
 (0)