【PAT甲级 - C++题解】1040 Longest Symmetric String

简介: 【PAT甲级 - C++题解】1040 Longest Symmetric String

1040 Longest Symmetric String


Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given Is PAT&TAP symmetric?, the longest symmetric sub-string is s PAT&TAP s, hence you must output 11.


Input Specification:

Each input file contains one test case which gives a non-empty string of length no more than 1000.


Output Specification:

For each test case, simply print the maximum length in a line.


Sample Input:

Is PAT&TAP symmetric?

Sample Output:

11


题意

需要我们求出给定字符串中回文子串的最长长度。

思路

这道题直接枚举即可,对字符串的每个字符都进行枚举:

  1. 1.先求子串长度为奇数的情况,长度为 r-l-1
  2. 2.再求子串长度为偶数的情况,长度同样为 r-l-1

最后输出得到的最长回文子串长度即可。


代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    //输入字符串
    string s;
    getline(cin, s);
    //计算最长回文子串
    int res = 0;
    for (int i = 0; i < s.size(); i++)
    {
        //先枚举奇数结点的情况
        int l = i - 1, r = i + 1;
        while (l >= 0 && r < s.size() && s[l] == s[r]) l--, r++;
        res = max(res, r - l - 1);
        //再枚举偶数结点的情况
        l = i, r = i + 1;
        while (l >= 0 && r < s.size() && s[l] == s[r]) l--, r++;
        res = max(res, r - l - 1);
    }
    //输出答案
    cout << res << endl;
    return 0;
}
目录
相关文章
|
2天前
|
C++
模拟实现c++中的string
模拟实现c++中的string
|
3月前
|
C语言 C++ 容器
【c++丨STL】string模拟实现(附源码)
本文详细介绍了如何模拟实现C++ STL中的`string`类,包括其构造函数、拷贝构造、赋值重载、析构函数等基本功能,以及字符串的插入、删除、查找、比较等操作。文章还展示了如何实现输入输出流操作符,使自定义的`string`类能够方便地与`cin`和`cout`配合使用。通过这些实现,读者不仅能加深对`string`类的理解,还能提升对C++编程技巧的掌握。
140 5
|
3月前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
89 2
|
4月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
45 1
|
4月前
|
C++ 容器
|
4月前
|
C++ 容器
|
4月前
|
C语言 C++
深度剖析C++string(中)
深度剖析C++string(中)
73 0
|
4月前
|
存储 编译器 程序员
深度剖析C++string(上篇)(2)
深度剖析C++string(上篇)(2)
57 0
|
4月前
|
存储 Linux C语言
深度剖析C++string(上篇)(1)
深度剖析C++string(上篇)(1)
43 0
|
4月前
|
C++