用Python编写程序以查找显示离字符c最近的距离的列表

用Python编写程序以查找显示离字符c最近的距离的列表

假设我们有一个字符串s和另一个字符c,c必须存在在s中,我们必须找到一个列表,其长度与s的长度相同,其中对于每个索引i,它的值设置为s[i]到c的最近距离。

因此,如果输入为s =“ppqppq”c =“q”,则输出将为[2,1,0,1,1,0]

要解决这个问题,我们将遵循以下步骤-

  • j:= s的大小

  • d:= [j-1] * j

  • x:= c在s中的索引

  • 对于i在0到j-1的范围内进行迭代,做以下操作

    • 如果s[i]与c相同且i>x,则
      • x:= i,ind:= 1

      • 以下是循环,请执行

      • 如果d[x-ind]>ind,则

        • d[x-ind]:= ind
      • 否则,
        • 退出循环
      • ind:= ind + 1

    • d[i]:= |x-i |

  • 返回d

示例

让我们看以下实现以获得更好的理解

 def solve(s, c):
     j = len(s)
     d = [j - 1] * j
     x = s.index(c)
     for i in range(j):
         if s[i] == c and i > x:
             x = i
             ind = 1
             while True:
                 if d[x - ind] > ind:
                     d[x - ind] = ind
                 else:
                     break
                 ind += 1
         d[i] = abs(x - i)
     return d

s = "ppqppq"
c = "q"
print(solve(s, c))

输入

"ppqppq","q"

输出

[2,1,0,1,1,0]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程