271. Encode and Decode Strings

https://leetcode.com/problems/encode-and-decode-strings/description/

image.png

这道题是序列化反序列化LIST<STRING> 因为STRING可能可以包含任何字符。所以我采用的是JDK的做法。先存STRING的长度,然后打一个空格,随后存STRING。

public class Codec {

    // Encodes a list of strings to a single string.
    public String encode(List<String> strs) {
        StringBuilder sb = new StringBuilder();
        for(String str : strs){
            sb.append(str.length()+" ").append(str);
        }
        return sb.toString();
    }

    // Decodes a single string to a list of strings.
    public List<String> decode(String s) {
        List<String> res = new ArrayList<>();
        char[] cs = s.toCharArray();
        for(int i = 0; i < cs.length;){
            StringBuilder len = new StringBuilder();
            StringBuilder content = new StringBuilder();
            while(cs[i]!=' '){
                len.append(cs[i]);
                i++;
            }
            i++;
            int l = Integer.parseInt(len.toString());
            for(int j=0;j<l;j++)
                content.append(cs[i++]);
            res.add(content.toString());
        }
        return res;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容