循环不变式-证明正确性

问题描述

我有以下算法,并且我试图找到循环不变式以证明其正确性。下面的算法返回文本T中最长偶数回文的偏移量(偏移),如果T不包含回文,则返回-1。回文报是一个字符序列,其向前和向后读取相同的字符,例如“ xttx”。

Palindrome(T) 
  k = T.length 
  while(k > 1)
    for(s = 0 to T.length - k) 
      j=1
      while(j =< k/2 and T[s + j] == T[s + k – j]) 
        j++
      if(j == (k/2) + 1) 
        return s
    k=k-2 
  return -1

每个循环的循环不变式是什么?

对于我说的外部while循环,没有回文> =到k + 2的长度

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...