271. Encode and Decode Strings
class Codec {
public:
// Encodes a list of strings to a single string.
string encode(vector<string>& strs) {
string res;
for (int i = 0; i < strs.size(); i++)
res += to_string(strs[i].size()) + "%" + strs[i];
return res;
}
// Decodes a single string to a list of strings.
vector<string> decode(string s) {
vector<string> res;
for (int i = 0; i < s.size(); ) {
int len = 0;
while (isdigit(s[i])) len = len * 10 + s[i++] - '0';
i++;
string tmp;
while (len--) tmp += s[i++];
res.push_back(tmp);
}
return res;
}
};
// Your Codec object will be instantiated and called as such:
// Codec codec;
// codec.decode(codec.encode(strs));