Skip to content

Commit 163bb27

Browse files
authored
Improved tasks 12-28
1 parent aacba4a commit 163bb27

File tree

9 files changed

+101
-75
lines changed

9 files changed

+101
-75
lines changed

src/main/ts/g0001_0100/s0012_integer_to_roman/solution.ts

+9-12
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,19 @@
22
// #2025_03_31_Time_3_ms_(93.02%)_Space_61.86_MB_(54.05%)
33

44
function intToRoman(num: number): string {
5-
const values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
6-
const symbols = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
7-
8-
let result = "";
9-
let i = 0;
10-
5+
const values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
6+
const symbols = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
7+
let result = ''
8+
let i = 0
119
while (num > 0) {
1210
if (num >= values[i]) {
13-
result += symbols[i];
14-
num -= values[i];
11+
result += symbols[i]
12+
num -= values[i]
1513
} else {
16-
i++;
14+
i++
1715
}
1816
}
19-
20-
return result;
21-
};
17+
return result
18+
}
2219

2320
export { intToRoman }

src/main/ts/g0001_0100/s0013_roman_to_integer/solution.ts

+23-25
Original file line numberDiff line numberDiff line change
@@ -2,50 +2,48 @@
22
// #Top_Interview_150_Array/String #2025_03_31_Time_3_ms_(94.58%)_Space_61.52_MB_(51.93%)
33

44
function romanToInt(s: string): number {
5-
let x = 0;
6-
let y: string;
7-
5+
let x = 0
6+
let y: string
87
for (let i = 0; i < s.length; i++) {
9-
y = s.charAt(i);
8+
y = s.charAt(i)
109
switch (y) {
1110
case 'I':
12-
x = getX(s, x, i, 1, 'V', 'X');
13-
break;
11+
x = getX(s, x, i, 1, 'V', 'X')
12+
break
1413
case 'V':
15-
x += 5;
16-
break;
14+
x += 5
15+
break
1716
case 'X':
18-
x = getX(s, x, i, 10, 'L', 'C');
19-
break;
17+
x = getX(s, x, i, 10, 'L', 'C')
18+
break
2019
case 'L':
21-
x += 50;
22-
break;
20+
x += 50
21+
break
2322
case 'C':
24-
x = getX(s, x, i, 100, 'D', 'M');
25-
break;
23+
x = getX(s, x, i, 100, 'D', 'M')
24+
break
2625
case 'D':
27-
x += 500;
28-
break;
26+
x += 500
27+
break
2928
case 'M':
30-
x += 1000;
31-
break;
29+
x += 1000
30+
break
3231
default:
33-
break;
32+
break
3433
}
3534
}
36-
return x;
35+
return x
3736
}
3837

3938
function getX(s: string, x: number, i: number, i2: number, v: string, x2: string): number {
4039
if (i + 1 === s.length) {
41-
x += i2;
40+
x += i2
4241
} else if (s.charAt(i + 1) === v || s.charAt(i + 1) === x2) {
43-
x -= i2;
42+
x -= i2
4443
} else {
45-
x += i2;
44+
x += i2
4645
}
47-
return x;
46+
return x
4847
}
4948

50-
5149
export { romanToInt }

src/main/ts/g0001_0100/s0014_longest_common_prefix/solution.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,26 @@
44

55
function longestCommonPrefix(strs: string[]): string {
66
if (strs.length < 1) {
7-
return "";
7+
return ''
88
}
99
if (strs.length === 1) {
10-
return strs[0];
10+
return strs[0]
1111
}
12-
let temp = strs[0];
13-
let i = 1;
14-
let cur: string;
12+
let temp = strs[0]
13+
let i = 1
14+
let cur: string
1515
while (temp.length > 0 && i < strs.length) {
1616
if (temp.length > strs[i].length) {
17-
temp = temp.substring(0, strs[i].length);
17+
temp = temp.substring(0, strs[i].length)
1818
}
19-
cur = strs[i].substring(0, temp.length);
19+
cur = strs[i].substring(0, temp.length)
2020
if (cur !== temp) {
21-
temp = temp.substring(0, temp.length - 1);
21+
temp = temp.substring(0, temp.length - 1)
2222
} else {
23-
i++;
23+
i++
2424
}
2525
}
26-
return temp;
26+
return temp
2727
}
2828

2929
export { longestCommonPrefix }

src/main/ts/g0001_0100/s0026_remove_duplicates_from_sorted_array/solution.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
// #Top_Interview_150_Array/String #2025_03_31_Time_0_ms_(100.00%)_Space_58.42_MB_(57.44%)
33

44
function removeDuplicates(nums: number[]): number {
5-
let n = nums.length;
6-
let i = 0;
7-
let j = 1;
5+
let n = nums.length
6+
let i = 0
7+
let j = 1
88
if (n <= 1) {
9-
return n;
9+
return n
1010
}
1111
while (j <= n - 1) {
1212
if (nums[i] !== nums[j]) {
13-
nums[i + 1] = nums[j];
14-
i++;
13+
nums[i + 1] = nums[j]
14+
i++
1515
}
16-
j++;
16+
j++
1717
}
18-
return i + 1;
18+
return i + 1
1919
}
2020

2121
export { removeDuplicates }

src/main/ts/g0001_0100/s0027_remove_element/solution.ts

+13-13
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,32 @@
33

44
function removeElement(nums: number[], val: number): number {
55
if (!nums || nums.length === 0) {
6-
return 0;
6+
return 0
77
}
8-
let len = nums.length;
9-
let j = len - 1;
10-
let occurTimes = 0;
8+
let len = nums.length
9+
let j = len - 1
10+
let occurTimes = 0
1111
for (let i = 0; i < len; i++) {
1212
if (nums[i] === val) {
13-
occurTimes++;
13+
occurTimes++
1414
if (j === i) {
15-
return len - occurTimes;
15+
return len - occurTimes
1616
}
1717
while (nums[j] === val) {
18-
j--;
19-
occurTimes++;
18+
j--
19+
occurTimes++
2020
if (j === i) {
21-
return len - occurTimes;
21+
return len - occurTimes
2222
}
2323
}
24-
nums[i] = nums[j];
25-
j--;
24+
nums[i] = nums[j]
25+
j--
2626
}
2727
if (i === j) {
28-
return len - occurTimes;
28+
return len - occurTimes
2929
}
3030
}
31-
return len - occurTimes;
31+
return len - occurTimes
3232
}
3333

3434
export { removeElement }

src/main/ts/g0001_0100/s0028_find_the_index_of_the_first_occurrence_in_a_string/solution.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
function strStr(haystack: string, needle: string): number {
66
if (needle.length === 0) {
7-
return 0;
7+
return 0
88
}
9-
let m = haystack.length;
10-
let n = needle.length;
9+
let m = haystack.length
10+
let n = needle.length
1111
for (let start = 0; start <= m - n; start++) {
1212
if (haystack.substring(start, start + n) === needle) {
13-
return start;
13+
return start
1414
}
1515
}
16-
return -1;
16+
return -1
1717
}
1818

1919
export { strStr }

src/test/ts/g0001_0100/s0014_longest_common_prefix/solution.test.ts

+8
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,11 @@ test('longestCommonPrefix', () => {
99
test('longestCommonPrefix2', () => {
1010
expect(longestCommonPrefix(['dog','racecar','car'])).toEqual('')
1111
})
12+
13+
test('longestCommonPrefix3', () => {
14+
expect(longestCommonPrefix([])).toEqual('')
15+
})
16+
17+
test('longestCommonPrefix4', () => {
18+
expect(longestCommonPrefix(['dog'])).toEqual('dog')
19+
})

src/test/ts/g0001_0100/s0027_remove_element/solution.test.ts

+19
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,22 @@ test('removeElement', () => {
99
test('removeElement2', () => {
1010
expect(removeElement([0,1,2,2,3,0,4,2], 2)).toEqual(5)
1111
})
12+
13+
test('removeElement3', () => {
14+
const nums: number[] = []
15+
const val = 1
16+
expect(removeElement(nums, val)).toEqual(0)
17+
})
18+
19+
test('removeElement4', () => {
20+
const nums = [1, 1, 1, 1]
21+
const val = 1
22+
expect(removeElement(nums, val)).toEqual(0)
23+
})
24+
25+
test('removeElement5', () => {
26+
const nums = [4, 5]
27+
const val = 4
28+
expect(removeElement(nums, val)).toEqual(1)
29+
expect(nums[0]).toEqual(5)
30+
})

src/test/ts/g0001_0100/s0028_find_the_index_of_the_first_occurrence_in_a_string/solution.test.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@ import { strStr } from 'src/main/ts/g0001_0100/s0028_find_the_index_of_the_first
33
import { expect, test } from 'vitest'
44

55
test('strStr', () => {
6-
expect(strStr("sadbutsad", "sad")).toEqual(0)
6+
expect(strStr('sadbutsad', 'sad')).toEqual(0)
77
})
88

99
test('strStr2', () => {
10-
expect(strStr("leetcode", "leeto")).toEqual(-1)
10+
expect(strStr('leetcode', 'leeto')).toEqual(-1)
11+
})
12+
13+
test('strStr3', () => {
14+
expect(strStr('leetcode', '')).toEqual(0)
1115
})

0 commit comments

Comments
 (0)