I*****a 发帖数: 5425 | 1 input 几个 strings
经过一个 function/method 连接起来, output 一个string
再经过另一个 function/method 恢复,input 是上面连接后的string,output 是原来的
strings
请问思路是什么? |
l*********8 发帖数: 4642 | 2 要求太不清楚了。
【在 I*****a 的大作中提到】 : input 几个 strings : 经过一个 function/method 连接起来, output 一个string : 再经过另一个 function/method 恢复,input 是上面连接后的string,output 是原来的 : strings : 请问思路是什么?
|
p*****2 发帖数: 21240 | |
b***m 发帖数: 5987 | 4 用特殊符号连接再分割?这题不太明白啊。
【在 p*****2 的大作中提到】 : 貌似DFS
|
I*****a 发帖数: 5425 | 5 但是用什么特殊符号啊?
怎么保证特殊符号不是来自于strings 啊?
【在 b***m 的大作中提到】 : 用特殊符号连接再分割?这题不太明白啊。
|
f*****e 发帖数: 2992 | 6 用unicode或汉字?吓死那些老外!
【在 I*****a 的大作中提到】 : 但是用什么特殊符号啊? : 怎么保证特殊符号不是来自于strings 啊?
|
b***m 发帖数: 5987 | 7 用0分割,double 0表示字符串结束。
【在 I*****a 的大作中提到】 : 但是用什么特殊符号啊? : 怎么保证特殊符号不是来自于strings 啊?
|
l*****a 发帖数: 14598 | 8 原来的串里有0/00怎么办?
【在 b***m 的大作中提到】 : 用0分割,double 0表示字符串结束。
|
p*****2 发帖数: 21240 | |
b****e 发帖数: 45 | 10 可以自定义一个编码/解码的协议。可以参考一些file header的设计。比如:
1. 在开头加上字符串分段信息。用's‘表示一个新的字符串,然后紧跟着该字符串的
长度。最后用'e'表示协议header的结束位置。然后把所有字符按顺序连接起来跟在
header的后面。
例子:
把“Hello" "World"连接起来再分解,则编码后的字符串为"s5s5eHelloWorld"。解码
时,依序读取header信息得到两个字符串的长度。然后在结束字符'e'的后面开始读取
各个字符串。
【在 I*****a 的大作中提到】 : input 几个 strings : 经过一个 function/method 连接起来, output 一个string : 再经过另一个 function/method 恢复,input 是上面连接后的string,output 是原来的 : strings : 请问思路是什么?
|
|
|
d**e 发帖数: 6098 | 11 好像是我onsite G的一道题,encode/decode的问题。
我当时用dash连接各个string,但在注意escaping的问题
【在 I*****a 的大作中提到】 : input 几个 strings : 经过一个 function/method 连接起来, output 一个string : 再经过另一个 function/method 恢复,input 是上面连接后的string,output 是原来的 : strings : 请问思路是什么?
|
d**e 发帖数: 6098 | 12 这个方法好妙
【在 b****e 的大作中提到】 : 可以自定义一个编码/解码的协议。可以参考一些file header的设计。比如: : 1. 在开头加上字符串分段信息。用's‘表示一个新的字符串,然后紧跟着该字符串的 : 长度。最后用'e'表示协议header的结束位置。然后把所有字符按顺序连接起来跟在 : header的后面。 : 例子: : 把“Hello" "World"连接起来再分解,则编码后的字符串为"s5s5eHelloWorld"。解码 : 时,依序读取header信息得到两个字符串的长度。然后在结束字符'e'的后面开始读取 : 各个字符串。
|
x*********s 发帖数: 2604 | 13 找一个字符,譬如"\"来连接,用"\\"来表示string中含有"\" |
l*******b 发帖数: 2586 | 14 那出现了\\\是表示这个 \在前一个字符串里还是后一个字符串里?
【在 x*********s 的大作中提到】 : 找一个字符,譬如"\"来连接,用"\\"来表示string中含有"\"
|
b****e 发帖数: 45 | 15 "a\"和"\b"连接的时候会有问题吧
【在 x*********s 的大作中提到】 : 找一个字符,譬如"\"来连接,用"\\"来表示string中含有"\"
|
l*******b 发帖数: 2586 | 16 嗯,这个看着好,不知道有没有更简单的了。。
其实不需要e5这个信息,规定header之后有一个空格就可以了,然后s10记录该串长度
就好。
"s10 HelloWorld" + "s5 Great" = "s10s5 HelloWorldGreat"
【在 b****e 的大作中提到】 : 可以自定义一个编码/解码的协议。可以参考一些file header的设计。比如: : 1. 在开头加上字符串分段信息。用's‘表示一个新的字符串,然后紧跟着该字符串的 : 长度。最后用'e'表示协议header的结束位置。然后把所有字符按顺序连接起来跟在 : header的后面。 : 例子: : 把“Hello" "World"连接起来再分解,则编码后的字符串为"s5s5eHelloWorld"。解码 : 时,依序读取header信息得到两个字符串的长度。然后在结束字符'e'的后面开始读取 : 各个字符串。
|
d**e 发帖数: 6098 | 17 没有e5这个信息,放个e和放个空格是一样的吧。
【在 l*******b 的大作中提到】 : 嗯,这个看着好,不知道有没有更简单的了。。 : 其实不需要e5这个信息,规定header之后有一个空格就可以了,然后s10记录该串长度 : 就好。 : "s10 HelloWorld" + "s5 Great" = "s10s5 HelloWorldGreat"
|
l*******b 发帖数: 2586 | 18 一样一样,看错了,以为是e5表示header长度是5
【在 d**e 的大作中提到】 : 没有e5这个信息,放个e和放个空格是一样的吧。
|
d**e 发帖数: 6098 | 19 比如可以用"\."来连接各个string,"\\"用来escape string中的"\",这个decode时就
不会遇到"\\\"的情况。
不过还是besmile的简单得体。
【在 x*********s 的大作中提到】 : 找一个字符,譬如"\"来连接,用"\\"来表示string中含有"\"
|
F********9 发帖数: 44 | 20 微软的 bstr 是一个思路。
加密解密是另一个思路。 |
l*****a 发帖数: 14598 | 21 搞那些怪字符干吗。就是besmile的方法
size1+space+string1
size2+space+string2
size3+space+string3
...
找第一个space,get size1,then get string1....
【在 d**e 的大作中提到】 : 比如可以用"\."来连接各个string,"\\"用来escape string中的"\",这个decode时就 : 不会遇到"\\\"的情况。 : 不过还是besmile的简单得体。
|