华为机试:密码截取

直接暴力了Manacher算法还是要静下心来好好看一下

#include <iostream>
#include <string>
using namespace std;

int main() {
    // int a, b;
    // while (cin >> a >> b) { // 注意 while 处理多个 case
    //     cout << a + b << endl;
    // }
    string str;
    cin >> str;
    int i, j, ans = 0;
    for (i = 0; i < str.length() - 1; i++) {
        for (j = i + 1; j < str.length(); j++)
        {
            int l = i, r = j;
            bool flag = true;
            while(l < r) {
                if (str[l] == str[r]) {
                    l++;
                    r--;
                }
                else {
                    flag = false;
                    break;
                }
            }
            if (flag) ans = ans > (j - i + 1) ? ans : (j - i + 1);
        }
    }
    cout << ans << endl;
}

全部评论

相关推荐

10-02 19:29
已编辑
浙江科技大学 运营
点赞 评论 收藏
分享
评论
1
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务