因此,我正在使用最少的内存努力实现的任务是字符串解压缩。 基本上,程序从文本文件中读取压缩的字符串,然后在另一个文本文件中吐出该字符串的解压缩版本。但是,建议避免使用递归。
该字符串可能包含用圆括号括起来的符号组,并且在开括号前面有一个数字,该数字确定将重复用篱笆块执行多少次(这些组可以嵌套)。
示例:3(AB2(CD))=> ABCDCDABCDCDABCDCD
到目前为止,我的方法是从压缩字符串中逐个读取符号,并确定是否应将其添加到解压缩字符串中。
我要解决的内存问题是如何解压缩字符串,例如: 100000000(100000000(AB100000(CD)))
std::ifstream compressed;
char symbol;
while (compressed)
{
symbol = compressed.peek();
if (symbol >= '0'&&symbol <= '9')
{
//code
}
if (symbol == '(')
{
//code
}
if (symbol == ')')
{
//code
}
if (symbol != ')' && symbol != '(' && (symbol <= '0' || symbol >= '9'))
{
//code
}
}
谢谢!