https://neetcode.io/problems/string-encode-and-decode
주어진 string을 조각으로 분해 한 후, 다시 합치는 로직 즉, encode, decode 함수를 만들어라.
역시 여러가지 다양한 방법이 있을 수 있겠으나,
나누는 문자 등과 구분을 위하여,
길이+string 꼴로 변환할 필요가 있다는 것이다.
이것에 유의해서 만들면 큰 어려움은 없을 것.
코드
더보기
string encode(vector<string>& strs)
{
string ret = "";
for (auto k = 0; k < strs.size(); ++k)
{
string now = strs[k];
ret += to_string(now.size());
ret += ":";
ret += now;
}
return ret;
}
vector<string> decode(string s)
{
vector<string> vRet;
string sCur = "";
int cnt = -1;
for (auto k = 0; k < s.size(); ++k)
{
char now = s[k];
if (cnt == -1)
{
if (now >= '0' && now <= '9')
sCur += now;
else if (now == ':')
{
cnt = atoi(sCur.c_str());
sCur = "";
if (cnt == 0)
{
vRet.push_back("");
cnt = -1;
}
}
}
else
{
--cnt;
sCur += now;
if (cnt == 0)
{
vRet.push_back(sCur);
sCur = "";
cnt = -1;
}
}
}
return vRet;
}
결과
'Leetcode > NeetCode' 카테고리의 다른 글
[ArraysHashing][Medium] 36. Valid Sudoku (0) | 2024.07.08 |
---|---|
[ArraysHashing][Medium] 238. Product of Array Except Self (0) | 2024.07.08 |
[ArraysHashing][Medium] 347. Top K Frequent Elements (0) | 2024.07.07 |
[ArraysHashing][Medium] 49. Group Anagrams (0) | 2024.07.07 |
[ArraysHashing][Easy] 1. Two Sum (0) | 2024.07.07 |