P*A 发帖数: 189 | 1 如下的数据结构
["帮主",["老北京","总统"],...]
就是数组嵌套数组,数组中元素可以是数组,也可以是字符串。
为了方便网络传输,写两个函数分别(解)串行这种结构。
BTW,有经验的说说他家面了多久发据信呢,上轮隔几个小时就反馈了,这次隔的有点
久...
顺便也求个bless吧,thx。 |
c*******r 发帖数: 610 | 2 T就是猛,题目都没看懂....
不过多谢分享!Bless~ |
p**p 发帖数: 2493 | |
t********3 发帖数: 567 | 4 多谢分享,谁能解释一下“分别(解)串行这种结构”是什么意思么 |
h*******e 发帖数: 125 | 5 感觉类似JSON的格式,但又不完全是。应该就是binary tree serialize/deserialize
吧. |
c*********n 发帖数: 182 | |
E*******0 发帖数: 465 | 7 我觉得可以用stack push‘[‘和字符串,遇到一个‘]’就pop出最近的‘[’以及之间
的字符串.并且用一个数据结构存储。
用什么数据结构,在想想。 |
E*******0 发帖数: 465 | 8 我觉得用多叉树存储就可以了。
相返回字符串,就用in-order traversal就可以了。 |
C***U 发帖数: 2406 | 9 有点像ML里面的数据结构
呵呵
【在 P*A 的大作中提到】 : 如下的数据结构 : ["帮主",["老北京","总统"],...] : 就是数组嵌套数组,数组中元素可以是数组,也可以是字符串。 : 为了方便网络传输,写两个函数分别(解)串行这种结构。 : BTW,有经验的说说他家面了多久发据信呢,上轮隔几个小时就反馈了,这次隔的有点 : 久... : 顺便也求个bless吧,thx。
|
l*********u 发帖数: 19053 | 10 bless
【在 P*A 的大作中提到】 : 如下的数据结构 : ["帮主",["老北京","总统"],...] : 就是数组嵌套数组,数组中元素可以是数组,也可以是字符串。 : 为了方便网络传输,写两个函数分别(解)串行这种结构。 : BTW,有经验的说说他家面了多久发据信呢,上轮隔几个小时就反馈了,这次隔的有点 : 久... : 顺便也求个bless吧,thx。
|
|
|
P*A 发帖数: 189 | 11 是这么做,
不过是多叉树,
需要在结点设置个标记来区别结点是数组还是字符串。
树到串用递归,
串到树用stack
deserialize
【在 h*******e 的大作中提到】 : 感觉类似JSON的格式,但又不完全是。应该就是binary tree serialize/deserialize : 吧.
|
S*****e 发帖数: 229 | 12 bless!
【在 P*A 的大作中提到】 : 如下的数据结构 : ["帮主",["老北京","总统"],...] : 就是数组嵌套数组,数组中元素可以是数组,也可以是字符串。 : 为了方便网络传输,写两个函数分别(解)串行这种结构。 : BTW,有经验的说说他家面了多久发据信呢,上轮隔几个小时就反馈了,这次隔的有点 : 久... : 顺便也求个bless吧,thx。
|
p*****2 发帖数: 21240 | |
D****P 发帖数: 229 | |
b**********e 发帖数: 2042 | |
p*****2 发帖数: 21240 | 16 写了一个deserialize的
class Element:
def __init__(self,str):
self.str=str
self.l=[]
def add(self,e):
self.l.append(e)
def ifstr(self):
return self.str!=None
input="[Apple,[Orange,Banana,[A,B,C]]"
i=0
def dfs():
global i
e=None
while input[i]==',' or input[i]==' ':
i+=1
if input[i]=='[':
e=Element(None)
i+=1
while input[i]!=']':
e.add(dfs())
else:
j=i+1
while input[j]!=',' and input[j]!=']':
j+=1
e=Element(input[i:j])
i=j
return e
root=dfs() |
b*********n 发帖数: 1258 | 17 class Node {
public:
int data;
vector child;
}
Node* deserialize(FILE* fin) {
Node* node = 0;
char* token = 0;
if(*(token = readToken(fin))=='['){
node = new Node();
while(*(token = readToken(fin))!=']') {
if(*token=='[') {
fin->seek(-1);
Node* tmp = deserialize(fin);
node->child.push(tmp);
} else if(isLetter(*token)) {
node->child.push(token);
}
}
}
return node;
}
void serialize(FILE* fin, char* root) {
if (root==NULL) {
return;
}
if(root->child.size()=0) {
fin->append (root->data);
} else {
fin->append('[');
for (int idx=0; idx < root->child.size(); ++idx) {
serialize(fin, root->child.at(idx));
}
fin->append(']');
}
}
【在 P*A 的大作中提到】 : 如下的数据结构 : ["帮主",["老北京","总统"],...] : 就是数组嵌套数组,数组中元素可以是数组,也可以是字符串。 : 为了方便网络传输,写两个函数分别(解)串行这种结构。 : BTW,有经验的说说他家面了多久发据信呢,上轮隔几个小时就反馈了,这次隔的有点 : 久... : 顺便也求个bless吧,thx。
|