如何在python中比较这些字符串



>我有以下字符串:

1679.2235398,-1555.40390834,-1140.07728186,-1999.85500108

我正在使用隐写技术将其存储在图像中。现在,当我从图像中检索它时,有时我会以完整的形式将其取回,我对此没有问题。在其他情况下,检索到的数据没有完全检索(由于图像上发生了修改/更改),因此结果如下所示:

1679.2235398,-1555.I8xf3x1cj~x9bcx13xacx9e8I>[axfdV#x1cxe1xeaxa0x8ahx02xedxd1x1cx84x96xe2xfbk*8'l

请注意,只有"1679.2235398,-1555."被正确检索,而其余部分是发生修改的位置。现在,如何计算(以百分比表示)我成功检索了多少?由于长度不一样,我不能做一个字的比较,看来我需要把修改后的数据切片或转换成其他形式来匹配原始数据的长度。

有什么提示吗?

这在很大程度上取决于您问题的上下文,但您在这里有很多选择。

如果你的结果总是这样,你可以找到最长的公共子序列,然后除以原始字符串的长度以获得百分比。

Levenshtein 距离是比较字符串的常用方法,因为将一个字符串转换为另一个字符串所需的字符数需要更改。这个问题有几个答案,讨论如何将其转换为百分比。

如果你不希望字符串总是以相同的顺序出现,这个答案建议一些用于DNA工作的算法。

嗯,

这真的取决于..我的解决方案是这样的:

我会从所有可能的最长字符串开始,并检查它们是否在新字符串中 if original_string in new_string: 'something happens here'. 这将在一个循环中,该循环将减小原始字符串的大小并获得所有可能的组合。所以下一个会N-1长,有 2 种可能的组合(切断第一个数字或最后一个数字),依此类推,直到你达到特定的阈值,或者1长字符串。
循环可以将您在日志中找到的最长字符串存储在 if 条件内,然后您可以检查结果。 希望有帮助。

相关内容

  • 没有找到相关文章

最新更新