最后来个字符串签个到吧,这题其实并不难,所需的算法比较基础,甚至你们最近还上过课。
为了降低难度,免得所有人爆零。这里给几个提示的关键字 :字符串,回文,二分,哈希. 注意要对奇偶回文分开二分
这样还不会做,说明基础有所欠缺。
给你一个字符串A和一个字符串B,请你求一个满足以下要求的所有字符串中,最长的字符串C的长度:
C必须同时是A和B的子串,即A和B中都必须存在一个子区间和C长得一样
C必须是一个回文,即正过来读和反过来读都一样
多组数据,请处理到EOF
每组数据包含,两行,每行都是仅由小写字符构成的字符串,代表A和B。
对于30%的数据。
保证|A|,|B|<=1000,且单个文件的字符总数小于10000
对于100%的数据
保证|A|,|B|<=100000,且单个文件的字符总数小于2e6
其中70%的数据答案为奇数哦
因为没有处理掉字符串尾巴上多余的'\r',所以为了防止读到'\r' 推荐使用scanf("%s");
输出C的长度
bbabbbcbcbbbddde bbbabbbccadddbbba dggdgzz dggdbb aaa bbb acbdbca bcadacb
5 4 0 1hint: 对于第一个数据C取bbabb 对于第二个数据C取dggd