移位字符串并查找字符串每次移位之间匹配的索引数

2024-05-23 18:18:50 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试计算两个字符串之间的匹配数时遇到问题:

首先,我需要将字符串从数字1移动到5,并计算每次移动之间的匹配数,如果匹配数大于之前,请记住该移位,否则使用前一个移位。匹配将基于前一个字符串中索引的字符是否与后一个字符串中相同索引的字符匹配

original string: ABCDZZ
shift 1:          ABCDZ  match = 1 (index 4,"ABCDZ" is the new string, original shifted by 1)
shift 2:           ABCD  match = 0 ("ABCD" is the new string, original shifted by 2)
shift 3:            ABC  match = 0 ("ABC" is the new string, original shifted by 3)
shift 4:             AB  match = 0 ("AB" is the new string, original shifted by 4)
shift 5:              A  """

所以我的输出将是移位1,因为这是最匹配的。 手动操作相当简单,但我在使用for循环时遇到了问题。主要是如何让for循环进行迭代,比较每个新字符串的索引?这是否更有效,或者根据移位数对字符串进行切片是否有意义?如果有人能帮上忙的话,哪怕只是伪代码,我也不确定我这样做时的逻辑是否正确。是否有任何方法可以形象地创建两行并进行比较,因为每个字符串的索引甚至不会对齐,除非每次移动时在前面放置一个空格作为占位符

编辑: 我正在考虑将字符串拆分为一个字符列表,然后将索引与“新”字符串进行比较,这将是列表[:-1]和列表[0,”],本质上创建一个占位符作为移位中的空格,然后为最后一个字符删除-1。但接下来,我必须使用“new”字符串,因此我不确定如何在for循环中仍然使用变量的同时保持这些当前更改。字符串比我实际需要查找匹配项的字符串小得多,因此不知道这些字母实际上是什么。我只需要找到一种方法来比较前面字符串的索引和移位字符串的索引


Tags: the字符串列表newforstringbyshift