zoukankan      html  css  js  c++  java
  • 潍坊学院第四届acm程序设计竞赛I题(Bob的难题)

    Bob的难题

    Description

    Bob 有一个字符串s,但是他并不知道s具体是什么,他只知道s是由小写英文字母组成。现在定义一个字符串s′,s′是把s中所有的小写英文字母"a"去掉(其它字母的前后顺序保持不变)。此时Bob利用计算机产生了一个新的字符串T,T是由s和s′相连的,换句话说T=s+s′(s必须在s′前面)。

    给你一个字符串T,你的任务是寻找一个字符串s满足给定的条件。如果可以找到,它将是唯一的。

    Input

    输入只有一行。输入一个只由小写英文字母组成的字符串T,T的长度不超过100000。

    Output

    输出只有一行。如果找到字符串s,输出一个字符串s;否则,输出 ":(" (没有引号);

    数据范围:

    T的长度∈[1,100000]

    Sample Input 1 

    aaaaa

    Sample Output 1

    aaaaa

    Sample Input 2 

    aacaababc

    Sample Output 2

    :(

    Sample Input 3 

    ababacacbbcc

    Sample Output 3

    ababacac

    Sample Input 4 

    baba

    Sample Output 4

    :(

    Hint

    第一个样例,s="aaaaa",s′="" 。

    第二个样例,没有找到s 。

    第三个样例,s="ababacac",s′="bbcc"。

    第四个样例,没有找到s 。

    积累的经验:第一次交超时,为什么呢,因为程序中,我用了大量的strlen,而没有直接设置一个值int让他等于strlen

    然后再交还是错,因为ans没有初始化为0,因为ans记录的是a在字符串中的位置,当样例bb的时候,因为ans没初始化,所以ans的值千奇百怪,造成wa

    这次教训印象深刻,总的来说还是自己太菜了。一些小习惯没培养好

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1e5+10;
    char a[N],b[N];
    int main()
    {
    	scanf("%s",a);
    	int cnt = 0;
    	int ans = 0;
    	int x = strlen(a);
    	for(int i = 0; i < x; i++) {
    		if(a[i] != 'a') {
    			b[cnt++] = a[i];
    		}
    		else {
    			ans = i;
    		}
    	}
    	if((cnt % 2 != 0) || (ans >= x-(cnt/2))) {
    		printf(":(");
    	}
    	else{
    		for(int i = 0; i < cnt/2; i++) {
    			if(b[i] != b[(cnt/2)+i]) {
    				printf(":(");
    				return 0;
    			}
    		}
    		for(int i = 0; i < x-(cnt/2); i++) {
    			printf("%c",a[i]);
    		}
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    BZOJ4975: [Lydsy1708月赛]区间翻转( 博弈&逆序对)
    BZOJ4550: 小奇的博弈(NIMK博弈& 组合数& DP)
    BZOJ5301: [Cqoi2018]异或序列(莫队)
    BZOJ5450: 轰炸(水题,Tarjan缩点求最长路)
    BZOJ5125: [Lydsy1712月赛]小Q的书架(DP决策单调性)
    codevs 2495 水叮当的舞步
    bzoj 1086: [SCOI2005]王室联邦
    bzoj 3720: Gty的妹子树
    bzoj 1024: [SCOI2009]生日快乐
    bzoj 1085: [SCOI2005]骑士精神
  • 原文地址:https://www.cnblogs.com/clb123/p/12006708.html
Copyright © 2011-2022 走看看