首页 > 试题广场 >

字符串游戏

[编程题]字符串游戏
  • 热度指数:396 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

有一个字符串。求除去字符串本身以外,这个字符串最大的公共前后缀的长度是多少?

例如,对于字符串ABABA而言,“ABA”即是它的前缀,也是它的后缀,且是最长的公共前后缀,因此最大的长度是3。

给定一个只包含大写字母的字符串s,返回除去字符串本身以外公共前后缀大长度,如果没有任何一个公共前后缀满足要求,返回-1即可。
示例1

输入

"ABA"

输出

1

说明

字符串“A”为所求   
示例2

输入

"ABC"

输出

-1

说明

显然除去该字符串本身以外,不存在任何一个满足要求的公共前后缀   

备注:
java是通不过么
发表于 2021-03-23 17:13:28 回复(0)
python排行在前的代码不正确呀,"AAABAAAAB"应该输出4,结果输出-1
class Solution:
    def solve(self , s ):
        tmp = 0
        for i in range(1,len(s)):
            if s[i] == s[tmp]:
                tmp+=1
            else:
                if s[i] == s[0]:
                    tmp = 1
                else:
                    tmp = 0
        return -1 if tmp==0 else tmp

发表于 2021-09-10 08:30:32 回复(0)
和求回文那道题一样,遍历数组,从两边对比,直到不一样为止
发表于 2021-01-22 18:56:22 回复(0)