b******i 发帖数: 914 | 1 Leetcode的帖子在这儿:
http://articles.leetcode.com/2010/09/serializationdeserializati
大概的方法就是前序遍历,然后null就用#代替。
但是里面follow-up:
What if we need to store strings that can contain any characters (including
the sentinel) in the binary tree? Could you come up with a solution to
overcome this shortcoming?
这个怎么回答?谢谢 |
c*******e 发帖数: 373 | 2 想想看,C语言、Java、JavaScript、Shell,SQL, HTML, 等等任意一种基于文本的,
但同时又需要能够表达任意文本和二进制值的语言吧,解决方案总是同样的:编码,或
者叫转义
比如C语言的源代码里,字符串里需要表达引号,就用"表示,需要表达\就用\
一般字符,直接用原字符表达,特殊字符,加转义,转义字符本身,用两个转义字符表达 |
d******e 发帖数: 2265 | 3 这个不就是先序存一遍中序存一遍嘛
谷歌H真是他妈的垃圾
搞出来刷这些题干嘛。有这时间真不如研究一下茴香豆的回怎么写还算正事
including
【在 b******i 的大作中提到】 : Leetcode的帖子在这儿: : http://articles.leetcode.com/2010/09/serializationdeserializati : 大概的方法就是前序遍历,然后null就用#代替。 : 但是里面follow-up: : What if we need to store strings that can contain any characters (including : the sentinel) in the binary tree? Could you come up with a solution to : overcome this shortcoming? : 这个怎么回答?谢谢
|
b******i 发帖数: 914 | 4 懂了,比如我用# 作为分隔符的话,用来转义,那么比如我的nodes有两个string是
123#234, 567
我就变成 123\#234#567,第一是转义的,第二个就是用来分隔的。这就需要
seriealize的时候查看每个node的string里面有没有#,有的话在前面加一个\。
表达
【在 c*******e 的大作中提到】 : 想想看,C语言、Java、JavaScript、Shell,SQL, HTML, 等等任意一种基于文本的, : 但同时又需要能够表达任意文本和二进制值的语言吧,解决方案总是同样的:编码,或 : 者叫转义 : 比如C语言的源代码里,字符串里需要表达引号,就用"表示,需要表达\就用\ : 一般字符,直接用原字符表达,特殊字符,加转义,转义字符本身,用两个转义字符表达
|