原题:
1040. Longest Symmetric String (25)
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
题解:
题目大意
Given a string, you are supposed to output the length of the longest symmetric sub-string
即输出序列内最大的对称序列
输入
单行:字符串
--String String.size() <= 1000
输出
输出最大的序列的字符数
测评结果
代码实现
#include <iostream>
#include <string>
int main ()
{
std::string in;
std::getline(std::cin, in);
auto len = in.size();
int32_t ret = -1;
for (int32_t i = 0; i < len; )
{
int32_t start = i-1, end=i+1, _tmp = 1;
while (end < len &&
in[end] == in[i])
{
++_tmp; ++end;
}
i = end;
while (end < len && start >= 0 &&
in[end++] == in[start--])
{
_tmp += 2;
}
if (_tmp > ret)
{
ret = _tmp;
}
}
std::cout << ret << std::endl;
return 0;
}