Skip to content

Commit f1e001b

Browse files
committed
Solve: encode-and-decode-strings
1 parent 516ce2c commit f1e001b

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
๏ปฟ๏ปฟ #ํ•ด์„
2+
#encodeํ•จ์ˆ˜: ๋งค๊ฐœ๋ณ€์ˆ˜ strs ๋ฆฌ์ŠคํŠธ๋ฅผ join ๋ฉ”์†Œ๋“œ์™€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ํ•˜๋‚˜์˜ string์ธ answer๋กœ ์ „ํ™˜
3+
#decodeํ•จ์ˆ˜: ๋งค๊ฐœ๋ณ€์ˆ˜ string s๋ฅผ split ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ธฐ์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด list๋กœ ์ „ํ™˜ํ•˜์—ฌ returnํ•œ๋‹ค.
4+
# ๋งŒ์•ฝ strs๊ฐ€ ๋น„์–ด์žˆ์„๋•Œ๋Š” ํŠน์ • string์„ ์ฃผ์ž…ํ•˜์—ฌ decode ์—์„œ ํ•ด๋‹น string์„ ์ธ์‹ํ•˜์—ฌ ๋นˆ ๋ฐฐ์—ด([])๋ฅผ returnํ•œ๋‹ค.
5+
6+
7+
#Big O
8+
#N: ๋ฆฌ์ŠคํŠธ strs์˜ ๊ธธ์ด (element ๊ฐฏ์ˆ˜)
9+
#L: strs์˜ ๊ฐ element ํ‰๊ท  ๊ธธ์ด (๋ฌธ์ž์—ด์˜ ๊ธธ์ด)
10+
#M: string s ์˜ ๊ธธ์ด
11+
12+
#Time Complexity:
13+
#-encode: O(N*L)
14+
#-- join(strs): ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” N๊ฐœ์˜ element์™€ ๊ฐ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด L์„ ํ•ฉ์‚ฐํ•˜์—ฌ ๋ฌธ์ž์—ด ์ƒ์„ฑ -> O(N * L)
15+
#-decode: O(M):
16+
#- split('๊ตฌ๋ถ„์ž'): split ๋ฉ”์„œ๋“œ๋Š” ๊ตฌ๋ถ„์ž๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์—์„œ string s๋ฅผ ์ˆœํšŒํ•˜๋ฏ€๋กœ -> O(M)
17+
18+
19+
20+
#Space Complexity: O(1)
21+
#-encode: O(N*L)
22+
#-- answer: join ๋ฉ”์„œ๋“œ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋ฌธ์ž์—ด์€ strs ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ํ•ฉ์นœ ๊ฐ’์ด๋ฏ€๋กœ -> O(N * L)
23+
#-decode: O(M)
24+
#-- answer:split ๋ฉ”์„œ๋“œ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋ฆฌ์ŠคํŠธ๋Š” string s์˜ ๊ธธ์ด์— ๋น„๋ก€ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ -> O(M)
25+
26+
27+
28+
class Solution:
29+
30+
31+
def encode(self, strs: List[str]) -> str:
32+
answer = '!@#$%123456789'.join(strs)
33+
if len(strs) == 0:
34+
answer = "I am empty"
35+
return answer
36+
37+
def decode(self, s: str) -> List[str]:
38+
answer = s.split('!@#$%123456789')
39+
if s == "I am empty":
40+
answer = []
41+
return answer
42+
43+
44+

0 commit comments

Comments
ย (0)