string - 如何用更少的内存保存多个相似(分层格式)的字符串?

标签 string algorithm memory

我需要在 C++ 中保存这样的字符串,并且需要进行名称比较。有什么算法可以减少内存使用量吗?谢谢。

x1.x2.x3.r1//典型的字符串长度大于50。

x1.x2.x3.r2

x1.x2.x3.r3

x1.x2.x4.r1

...

我自己有这样的计划:将一个字符串分成两部分:“x1.x2.x3.r1”=“x1.x2.x3”。 ( A ) + "r1"(B), A 可以用在其他字符串中。而比较名字的时候需要比较两部分。我不确定它是否可行。

最佳答案

如何将它们存储在树中?

每个节点代表字符串的下一部分,用点分隔。

然后,在比较时,您比较节点的祖先。

关于string - 如何用更少的内存保存多个相似(分层格式)的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20063616/

相关文章:

c# - 如何删除字符串开头或结尾的所有空格?

android - 在Android中将文件路径转换为Uri

algorithm - 图像移动标定

memory - 内存地址是否总是指一个字节,而不是一位?

java - 从另一个 jar 打开 jar

docker - 在 AWS 上部署容器后部署时出现 OutOfMemoryError

javascript - 使用 toUpperCase 更改为 .length?

java - JAVA 的 replaceAll() 方法中的正则表达式元字符 "*"和 "*?"表现异常

algorithm - 在子集中包含 for 循环

algorithm - 查找数组中每个大小为 k 的窗口的最大值