Skip to content

Commit c9c8204

Browse files
committed
feat: add c solution to lc problems: No.1678, 1768
- No.1678.Goal Parser Interpretation - No.1768.Merge Strings Alternately
1 parent 6f2d9bd commit c9c8204

File tree

6 files changed

+137
-0
lines changed

6 files changed

+137
-0
lines changed

solution/1600-1699/1678.Goal Parser Interpretation/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,31 @@ impl Solution {
230230
}
231231
```
232232

233+
### **C**
234+
235+
```c
236+
char *interpret(char *command) {
237+
int n = strlen(command);
238+
char *ans = malloc(sizeof(char) * n + 1);
239+
int i = 0;
240+
for (int j = 0; j < n; j++) {
241+
char c = command[j];
242+
if (c == 'G') {
243+
ans[i++] = 'G';
244+
} else if (c == '(') {
245+
if (command[j + 1] == ')') {
246+
ans[i++] = 'o';
247+
} else {
248+
ans[i++] = 'a';
249+
ans[i++] = 'l';
250+
}
251+
}
252+
}
253+
ans[i] = '\0';
254+
return ans;
255+
}
256+
```
257+
233258
### **...**
234259
235260
```

solution/1600-1699/1678.Goal Parser Interpretation/README_EN.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,31 @@ impl Solution {
208208
}
209209
```
210210

211+
### **C**
212+
213+
```c
214+
char *interpret(char *command) {
215+
int n = strlen(command);
216+
char *ans = malloc(sizeof(char) * n + 1);
217+
int i = 0;
218+
for (int j = 0; j < n; j++) {
219+
char c = command[j];
220+
if (c == 'G') {
221+
ans[i++] = 'G';
222+
} else if (c == '(') {
223+
if (command[j + 1] == ')') {
224+
ans[i++] = 'o';
225+
} else {
226+
ans[i++] = 'a';
227+
ans[i++] = 'l';
228+
}
229+
}
230+
}
231+
ans[i] = '\0';
232+
return ans;
233+
}
234+
```
235+
211236
### **...**
212237
213238
```
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
char *interpret(char *command) {
2+
int n = strlen(command);
3+
char *ans = malloc(sizeof(char) * n + 1);
4+
int i = 0;
5+
for (int j = 0; j < n; j++) {
6+
char c = command[j];
7+
if (c == 'G') {
8+
ans[i++] = 'G';
9+
} else if (c == '(') {
10+
if (command[j + 1] == ')') {
11+
ans[i++] = 'o';
12+
} else {
13+
ans[i++] = 'a';
14+
ans[i++] = 'l';
15+
}
16+
}
17+
}
18+
ans[i] = '\0';
19+
return ans;
20+
}

solution/1700-1799/1768.Merge Strings Alternately/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,30 @@ impl Solution {
169169
}
170170
```
171171

172+
### **C**
173+
174+
```c
175+
char *mergeAlternately(char *word1, char *word2) {
176+
int m = strlen(word1);
177+
int n = strlen(word2);
178+
char *ans = malloc(sizeof(char) * (n + m + 1));
179+
int i = 0;
180+
int j = 0;
181+
while (i + j != m + n) {
182+
if (i < m) {
183+
ans[i + j] = word1[i];
184+
i++;
185+
}
186+
if (j < n) {
187+
ans[i + j] = word2[j];
188+
j++;
189+
}
190+
}
191+
ans[n + m] = '\0';
192+
return ans;
193+
}
194+
```
195+
172196
### **...**
173197
174198
```

solution/1700-1799/1768.Merge Strings Alternately/README_EN.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,30 @@ impl Solution {
176176
}
177177
```
178178

179+
### **C**
180+
181+
```c
182+
char *mergeAlternately(char *word1, char *word2) {
183+
int m = strlen(word1);
184+
int n = strlen(word2);
185+
char *ans = malloc(sizeof(char) * (n + m + 1));
186+
int i = 0;
187+
int j = 0;
188+
while (i + j != m + n) {
189+
if (i < m) {
190+
ans[i + j] = word1[i];
191+
i++;
192+
}
193+
if (j < n) {
194+
ans[i + j] = word2[j];
195+
j++;
196+
}
197+
}
198+
ans[n + m] = '\0';
199+
return ans;
200+
}
201+
```
202+
179203
### **...**
180204
181205
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
char *mergeAlternately(char *word1, char *word2) {
2+
int m = strlen(word1);
3+
int n = strlen(word2);
4+
char *ans = malloc(sizeof(char) * (n + m + 1));
5+
int i = 0;
6+
int j = 0;
7+
while (i + j != m + n) {
8+
if (i < m) {
9+
ans[i + j] = word1[i];
10+
i++;
11+
}
12+
if (j < n) {
13+
ans[i + j] = word2[j];
14+
j++;
15+
}
16+
}
17+
ans[n + m] = '\0';
18+
return ans;
19+
}

0 commit comments

Comments
 (0)