欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

Substring,

来源: javaer 分享于  点击 38811 次 点评:155

Substring,


描述 

You are given a string input. You are to find the longest substring of input such that the reversal of the substring is also a substring of input. In case of a tie, return the string that occurs earliest in input. 

Note well: The substring and its reversal may overlap partially or completely. The entire original string is itself a valid substring . The best we can do is find a one character substring, so we implement the tie-breaker rule of taking the earliest one first.

输入

The first line of input gives a single integer, 1 ≤ N ≤ 10, the number of test cases. Then follow, for each test case, a line containing between 1 and 50 characters, inclusive. Each character of input will be an uppercase letter ('A'-'Z').

输出

Output for each test case the longest substring of input such that the reversal of the substring is also a substring of input

样例输入

3                   

ABCABA

XYZ

XCVCX

样例输出

ABA

X

XCVCX

答案:

#include<iostream>

#include<string>

#include<algorithm>

using namespace std;

int main()

{

 

int n;

cin>>n;

while(n--){

string s,r;

cin>>s;

int maxlen=0;

for(int i=0;i!=s.size();i++){

for(int j=s.size()-i;j>0&&j>maxlen;j--){

string s2=s;

reverse(s2.begin(),s2.end());

if(s2.find(s.substr(i,j))!=string::npos)r=s.substr(i,j),maxlen=j;

}

}

cout<<r<<endl;

}


相关文章

    暂无相关文章

用户点评