Skip to content

Commit dd7c18f

Browse files
committed
feat: Upload valid-palindrome solution (typescript)
1 parent b0e37bc commit dd7c18f

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

โ€Žvalid-palindrome/mike2ox.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Source: https://leetcode.com/problems/valid-palindrome/
3+
* ํ’€์ด๋ฐฉ๋ฒ•: ๋ฌธ์ž์—ด์„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ์ •์ œํ•œ ํ›„ reverseํ•˜์—ฌ ๋น„๊ต
4+
* ์‹œ๊ฐ„๋ณต์žก๋„: O(n)
5+
* ๊ณต๊ฐ„๋ณต์žก๋„: O(n)
6+
*
7+
* ์ƒ๊ฐ๋‚˜๋Š” ํ’€์ด๋ฐฉ๋ฒ•
8+
* 1. ์ •๊ทœ์‹์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์ •์ œํ•œ ํ›„ reverseํ•˜์—ฌ ๋น„๊ต => ์ •๊ทœ์‹ ์ž‘์„ฑ์„ ๋ชปํ•ด์„œ ๋ฐฐ์ œ
9+
* 2. ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฌธ์ž๋งŒ ๋ฐฐ์—ด์— ์ €์žฅํ•œ ํ›„ reverseํ•˜์—ฌ ๋น„๊ต
10+
*/
11+
function isPalindrome(s: string): boolean {
12+
// ๋ฏธ๋ฆฌ ๊ธธ์ด๊ฐ€ 2๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋Š” true๋กœ ๋ฐ˜ํ™˜(Palindrome ์กฐ๊ฑด์— ๋งž์Œ)
13+
if (s.length < 2) return true;
14+
const formatted: string[] = [];
15+
16+
// ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฌธ์ž๋งŒ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋ฐฐ์—ด์— ์ €์žฅ
17+
for (let c of s) {
18+
if (
19+
(c >= "a" && c <= "z") ||
20+
(c >= "A" && c <= "Z") ||
21+
(c >= "0" && c <= "9")
22+
)
23+
formatted.push(c.toLowerCase());
24+
}
25+
// formatted ๋ฐฐ์—ด์„ reverseํ•˜์—ฌ JSON.stringify๋กœ ๋น„๊ต (์ค‘์š”)
26+
// ? toReverse()๊ฐ€ chrome console์—์„œ๋Š” ์ž‘๋™ํ•˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ๋Š” ์™œ ์•ˆ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Œ
27+
const reversed = [...formatted].reverse();
28+
return JSON.stringify(reversed) === JSON.stringify(formatted);
29+
}

0 commit comments

Comments
ย (0)