Skip to content

Commit 2ce8191

Browse files
committed
encode-and-decode-strings
1 parent e7e9cef commit 2ce8191

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n) - n์€ ๋ชจ๋“  ๋ฌธ์ž์—ด์˜ ์ด ๊ธธ์ด. ๊ฐ ๋ฌธ์ž๋ฅผ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์ฒ˜๋ฆฌํ•จ
3+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n) - ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์›๋ณธ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋งŒํผ ๊ณต๊ฐ„ ํ•„์š”
4+
*/
5+
var encode = function (strs) {
6+
let text = "";
7+
for (let str of strs) {
8+
// ๊ฐ ๋ฌธ์ž์—ด ์•ž์— ๊ธธ์ด์™€ ๊ตฌ๋ถ„์ž(:)๋ฅผ ๋ถ™์—ฌ์„œ ์ €์žฅ
9+
// ์˜ˆ: ["abc", "de"] -> "3:abc2:de"
10+
text += `${str.length}:${str}`;
11+
}
12+
return text;
13+
};
14+
15+
var decode = function (s) {
16+
const result = [];
17+
let start = 0;
18+
19+
while (start < s.length) {
20+
// ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ์— ๋“ฑ์žฅํ•˜๋Š” ์ฝœ๋ก  ์œ„์น˜๋ฅผ ์ฐพ์•„ ๊ธธ์ด ์ •๋ณด ์ถ”์ถœ
21+
const mid = s.indexOf(":", start);
22+
const length = parseInt(s.substring(start, mid));
23+
24+
// ๊ธธ์ด ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ์›๋ž˜ ๋ฌธ์ž์—ด ์ถ”์ถœํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์— ์ถ”๊ฐ€
25+
result.push(s.substring(mid + 1, mid + 1 + length));
26+
27+
// ๋‹ค์Œ ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ์œ„์น˜๋กœ ์ด๋™
28+
start = mid + 1 + length;
29+
}
30+
31+
return result;
32+
};

0 commit comments

Comments
ย (0)