码迷,mamicode.com
首页 > 其他好文 > 详细

271. 字符串的编码与解码

时间:2020-03-14 23:55:43      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:span   标识   str   anti   数值   否则   iat   size   判断   

题目:

 

 

解答:

每个串前用分隔符,分隔符指明数据串的长度。

当然实际中的IP分片是:

在IP首部有4个字节是用于分片的,如下图所示。前16位是IP数据报的标识,同一个数据报的各个分片的标识是一样的,目的端会根据这个标识来判断IP分片是否属于同一个IP数据报。中间3位是标志位,其中有1位用来表示是否有更多的分片,如果是最后一个分片,该标志位为0,否则为1。后面13位表示分片在原始数据的偏移,这里的原始数据是IP层收到的传输的TCP或UDP数据,不包含IP首部。

技术图片

 

 

技术图片

 

 

class Codec {
public:
    // Encodes a list of strings to a single string.
    string encode(vector<string>& strs) {
        string res="",len,prefix;
        for(auto& str:strs){
            len=to_string(str.size());
            prefix="";//每个字符串前用一个32长度的指示字符串作为分隔,该指示串表示的整数值指示之后的数据串的长度
            if(len.size()<32){
                prefix.assign(32-len.size(),0);
            }
            prefix+=len;
            res+=prefix;
            res+=str;
        }
        return res;
    }

    // Decodes a single string to a list of strings.
    vector<string> decode(string s) {
        int i=0,len;
        vector<string> res;
        while(i<s.size()){
            len=stoi(s.substr(i,32));
            i+=32;
            res.push_back(move(s.substr(i,len)));
            i+=len;
        }
        return move(res);
    }
};

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

技术图片

 

271. 字符串的编码与解码

标签:span   标识   str   anti   数值   否则   iat   size   判断   

原文地址:https://www.cnblogs.com/FdWzy/p/12495151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!