Skip to content

Commit 16934aa

Browse files
Zuchen LiuZuchen Liu
Zuchen Liu
authored and
Zuchen Liu
committedAug 27, 2021
case fix for 0028 and 0066
1 parent 85827e5 commit 16934aa

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed
 

‎0028_implement_strstr/strstr.c

+4
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ static int strStr(char *haystack, char *needle)
7878
unsigned int hlen = strlen(haystack);
7979
unsigned int nlen = strlen(needle);
8080

81+
// when haystack is shorter than needle, should return -1
82+
if(hlen < nlen)
83+
return -1;
84+
8185
/* Brute force */
8286
/* Corner condition: imagine nlen = 1 and it equals i < hlen */
8387
for (i = 0; i < hlen - nlen + 1; i++) {

‎0066_plus_one/plus_one.c

+9-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,15 @@ static int* plusOne(int* digits, int digitsSize, int* returnSize)
1111
int i, j, len = 0, carry = 1;
1212
int *result = malloc((digitsSize + 1) * sizeof(int));
1313
for (i = digitsSize - 1; i >= 0 || carry; i--) {
14-
int n = digits[i] + carry;
15-
result[len++] = n % 10;
16-
carry = n / 10;
14+
if(i >= 0){
15+
int n = digits[i] + carry;
16+
result[len++] = n % 10;
17+
carry = n / 10;
18+
} else {
19+
// add case like [9]
20+
result[len++] = 1;
21+
carry = 0;
22+
}
1723
}
1824

1925
for (i = 0, j = len - 1; i < j; i++, j--) {

0 commit comments

Comments
 (0)