簡體   English   中英

如何在python中比較這些字符串?

[英]How to compare these strings in python?

我有以下字符串:

1679.2235398,-1555.40390834,-1140.07728186,-1999.85500108

我正在使用隱寫技術將其存儲在圖像中。 現在,當我從圖像中取回它時,有時我會以完整的形式將其取回,我對此沒有任何問題。 在其他情況下,檢索到的數據未被完全檢索(由於圖像上發生了修改/更改),因此結果如下所示:

1679.2235398,-1555.I8\xf3\x1cj~\x9bc\x13\xac\x9e8I>[a\xfdV#\x1c\xe1\xea\xa0\x8ah\x02\xed\xd1\x1c\x84\x96\xe2\xfbk*8'l

請注意,僅“1679.2235398,-1555”。 正確檢索,其余的是修改發生的地方。 現在,我如何計算(以百分比表示)我成功檢索了多少? 由於長度不一樣,我不能通過字符比較來做字符,似乎我需要將修改后的數據切片或轉換成其他形式以匹配原始數據的長度。

有小費嗎?

這很大程度上取決於你的問題的背景,但你有很多選擇。

如果您的結果總是如此,您可以找到最長的公共子序列 ,然后除以原始字符串的長度百分比。

Levenshtein距離是比較字符串的常用方法,作為將一個字符串轉換為另一個字符串所需的字符數。 這個問題有幾個答案,討論如何將其轉化為百分比。

如果你不希望字符串總是以相同的順序出現,那么這個答案就會提出一些用於DNA工作的算法。

嗯,這真的取決於..我的解決方案是這樣的:

我會從所有最長的字符串開始,並檢查它們是否在新字符串中, if original_string in new_string: 'something happens here'. 這將是一個循環,它將減少原始字符串的大小,並使所有組合成為可能。 所以下一個將是N-1長並且有2種可能的組合(切掉第一個數字或最后一個數字),依此類推,直到你達到一個特定的閾值或1長的字符串。
循環可以存儲在if條件內的日志中找到的最長字符串,然后您可以檢查結果。 希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM