序列化和反序列化字符串数组
我们给出了一个字符串数组,我们必须序列化字符串数组并反序列化序列化的字符串。
例子:
Input : "geeks", "are", "awesome"
Output : Serialized String : 5~geeks3~are7~awesome
Deserialized String : geeks are awesome
Input : "hello", "guys", "whats", "up!!!"
Output : Serialized String : 5~hello4~guys5~whats5~up!!!
Deserialized String : hello guys whats up!!!
序列化:扫描字符串中的每个元素,计算其长度并附加一个字符串和一个元素分隔符或分隔符(该分隔符不应出现在字符串中)。我们附加字符串的长度,以便我们知道每个元素的长度。
反序列化函数:找到分隔符的位置,然后从位置 + 1 到单词的长度,我们将其作为单个元素存储在数组中。
// CPP program to serialize and
// deserialize the array of string
#include
using namespace std;
// Function to serialized the array of string
string serialize(string str[], int ln)
{
string temp = "";
for (int i=0; i-1)
{
pos = str.find("~", pos+1);
if(pos>0)
{
len = str[pos-1] - 48;
temp.append(str, pos+1, len);
deserialize[i++] = temp;
temp = "";
}
}
}
// Driver function
int main()
{
string str[] = {"geeks", "are", "awesome"};
int ln = sizeof(str)/sizeof(str[0]);
string serializedstr = serialize(str, ln);
cout << "Serialized String : " << serializedstr <
输出:
Serialized String : 5~geeks3~are7~awesome
Deserialized String : geeks are awesome
参考 :
1. https://stackoverflow.com/questions/13271503/converting-array-string-to-string-and-back-in-java
2. https://www.careercup.com/question?id=5684077627703296