Description
定义MyString类,包括:
- 一个字符数组或字符指针,用于存储字符串内容。
- void input():读取一个不含空白符的字符串。
- void output():输出字符串。如果字符串不是回文串,则输出原串。如果是回文串,则仅输出前半部分。如:
原串:abccba,则输出abc
原串:abcdcba,则输出abcd
原串:abcd,则输出abcd
Input
第一行是整数N>0,表示之后有N个测试用例。每个测试用例占一行,是一个不含空白符的字符串。每个串不超过1000个字符。
Output
见样例。
Sample Input
4
abcdcba
abccba
abcdefgh
aaaaaaaa
Sample Output
abcd
abc
abcdefgh
aaaa
HINT
Append Code
int main()
{
MyString str;
int n, i;
cin>>n;
for (i = 0; i < n; i++)
{
str.input();
str.output();
}
return 0;
}
代码
#include <iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<iomanip>
#include<vector>
#include<typeinfo>
using namespace std;
class MyString
{
private :
char s[2000];
public :
MyString(){}
void input(){cin>>s;}
void output()
{
char *p = s;
int flag = 0;
int len = strlen(s)/2;
int length = strlen(s);
for(int i = 0; i < len; i++)
{
for(int j = length - i - 1;j > len; j--)
{
if(s[i]==s[j])break;
else{flag = 1;break;}
}
if(flag == 1)break;
else continue;
}
if(flag == 1){while(*p!='\0'){cout<<*p++;}}
else
{
if(length%2==0){while(len--){cout<<*p++;}}
else{len+=1;while(len--){cout<<*p++;}}
}
cout<<endl;
}
};
int main()
{
MyString str;
int n, i;
cin>>n;
for (i = 0; i < n; i++)
{
str.input();
str.output();
}
return 0;
}