本文共 678 字,大约阅读时间需要 2 分钟。
题目来源:
Description
这里有一个字符串 S,由于 “a” 是一个令人讨厌的字符,会将字符串 S 中的 “a” 完全删除之后(保持其它字符先后顺序不变)得到 S′,再将字符串 S 和 S’ 拼接得到一个新的字符串 T。换句话说,T = S + S’。
现在给出字符串T,希望能找到确定的字符串 S(如果字符串 S 存在,那么它必定唯一)。Input
输入仅一行,包含一个仅有小写字母组成的字符串 T (1 ≤ |T| ≤ 105 ) 。
Output
如果能找到确定的字符串 S,则输出 S(不用考虑,它必定是唯一的),如果不能找到,则输出 “😦”(没有引号,没有空格)。
Sample Input
ababacacbbcc
Sample Output
ababacac
Note
样例中 T = “ababacac” + “bbcc”
解题思路
使用一个新的数组ch存储去掉a的字符串。判断ch数组长度len是否为偶数,并且是否前后对应符合题意,然后再判断原字符串后len/2位是否有a。若成立就输出前面的字符串,若不成立则输出“NO”.
AC代码:
#includeusing namespace std;const int MAXN = 1e5+5;char ch[MAXN],s[MAXN];int main(){ scanf("%s",s); int len=strlen(s),num=0; for(int i=0;i
转载地址:http://dsyof.baihongyu.com/