271. Encode and Decode Strings

  1. Encode and Decode Strings

编码解码字符串

这道题只需要用\转义,用/分割就可以了,可能需要注意判断decode的时候如果为"/"则为{""}
注意:不能用/转义,用/分割。这样的话无法无脑解决["",""]这种情况,或者说///就没办法确定是什么了。

class Codec {
public:

    // Encodes a list of strings to a single string.
    // use '/' to end strings, use '\' to escape
    string encode(vector& strs) {
        string encode_string;
        for(auto str : strs) {
            for(auto c: str) {
                if(c == '/' || c == '\\') {
                    encode_string += '\\';
                }
                encode_string += c;
            }
            encode_string += '/';
        }
        return encode_string;
    }

    // Decodes a single string to a list of strings.
    vector decode(string s) {
        if(s == "/") {
            return {""};
        }
        vector decode_string;
        string cur_str;
        for(int i = 0; i < s.size();) {
            if(s[i] == '\\') {
                cur_str += s[i+1];
                i += 2;
            } else if(s[i] == '/') {
                decode_string.push_back(cur_str);
                cur_str = "";
                i++;
            } else {
                cur_str += s[i];
                i ++;
            }
        }
        return decode_string;
    }
};

// Your Codec object will be instantiated and called as such:
// Codec codec;
// codec.decode(codec.encode(strs));    

你可能感兴趣的:(271. Encode and Decode Strings)