Submit: 792 Solved: 563
[ Submit][ Status][ Web Board]
Description
定义MyString类,包括:
1. 一个字符数组或字符指针,用于存储字符串内容。
2. void input():读取一个不含空白符的字符串。
3. 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 <bits/stdc++.h>
using namespace std;
class MyString
{
private :
char s[1086];
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;
}