题解 | #最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

//最暴力的解法
#include <iostream>
#include <string>
#include <set>
using namespace std;

int main() {
    string strs;
    cin >> strs;

    set<string> substr;

    for (int i = 0;i < strs.size();i++)
    {
        for (int j = 0;j < strs.size();j++)
        {
            string newstr = strs.substr(i,j - i + 1);  //将字符串剪切下来
            substr.insert(newstr);   //将剪切下来的字符串保存并去重
        }
    }

    string max_substr;  //定义最长字符串
    int num = 0;        //最长字符串的长度

    for (auto it : substr)
    {
        for (int i = 0;i < it.size() / 2;i++)
        {
            if (it[i] != it[it.size() - i - 1])
            {
                break;
            }
            else 
            {
                if (i == it.size() / 2 - 1)
                {
                    if (it.size() > num)
                    {
                        max_substr = it;
                        num = it.size();
                    }
                }
            }
        }
    }

    //cout << max_substr << endl;
    cout << num << endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务