前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)

LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)

作者头像
Michael阿明
发布2021-02-19 10:21:00
1.2K0
发布2021-02-19 10:21:00
举报
文章被收录于专栏:Michael阿明学习之路

文章目录

1. 题目

请你设计一个算法,可以将一个 字符串列表 编码成为一个 字符串。 这个编码后的字符串是可以通过网络进行高效传送的,并且可以在接收端被解码回原来的字符串列表。

1 号机(发送方)有如下函数:

代码语言:javascript
复制
string encode(vector<string> strs) {
  // ... your code
  return encoded_string;
}

2 号机(接收方)有如下函数:

代码语言:javascript
复制
vector<string> decode(string s) {
  //... your code
  return strs;
}
代码语言:javascript
复制
1 号机(发送方)执行:

string encoded_string = encode(strs);
2 号机(接收方)执行:

vector<string> strs2 = decode(encoded_string);
此时,2 号机(接收方)的 strs2 需要和 1 号机(发送方)的 strs 相同。

请你来实现这个 encode 和 decode 方法。

注意: 因为字符串可能会包含 256 个合法 ascii 字符中的任何字符,所以您的算法必须要能够处理任何可能会出现的字符。 请勿使用 “类成员”、“全局变量” 或 “静态变量” 来存储这些状态,您的编码和解码算法应该是非状态依赖的。 请不要依赖任何方法库,例如 eval 又或者是 serialize 之类的方法。本题的宗旨是需要您自己实现 “编码” 和 “解码” 算法。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/encode-and-decode-strings 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 每个字符串前面加上该字符串的长度信息(转成4位16进制字符)
代码语言:javascript
复制
class Codec {
public:

    // Encodes a list of strings to a single string.
    string encode(vector<string>& strs) {
        string ans;
        for(auto& s : strs)
        	ans += numToHexIntStr(s.size())+s;
        return ans;
    }

    // Decodes a single string to a list of strings.
    vector<string> decode(string s) {
        vector<string> ans;
        int n;
        for(int i = 0; i < s.size(); i += 4+n)
        {
        	n = stoi(s.substr(i,4),0,16);//16进制转成10进制
        	ans.emplace_back(s.substr(i+4,n));
        }
        return ans;
    }

    string numToHexIntStr(int n)
    {
    	char ch[16];
    	sprintf(ch, "%x", n); // x 16进制,d 10进制, o 8进制
    	string ans = ch;
    	while(ans.size() < 4)
    		ans = '0'+ans;
    	return ans;
    }
};

68 ms 21.5 MB

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档