首页 > 其他分享 >T292219 [传智杯 #5 练习赛] 复读 ----- 字符串

T292219 [传智杯 #5 练习赛] 复读 ----- 字符串

时间:2022-11-19 21:35:41浏览次数:61  
标签:传智杯 练习赛 T292219 flag vecs 字符串 include 复读 vec

给定若干个字符串,不定数量,每行一个。有些字符串可能出现了多次。如果读入一个字符串后,发现这个字符串以前被读入过,则这个字符串被称为前面相同的字符串的复读,这个字符串被称为复读字符串。相应的,每个首次出现的字符串就是非复读字符串。

举个例子,

abc
def
abc
abc
abc

第 1,3,4,51,3,4,5 行是字符串 abc,那么 3,4,53,4,5 行的字符串会被称为“复读”。

请你把所有的非复读字符串,按照行号从小到大的顺序,依次拼接为一个长串并输出。

输入格式

多个字符串,每行一个,含义见题目描述。

注意:如果这个字符串是 0,说明所有字符串都读完了。这个 0 不认为是一个“非复读字符串”。

输出格式

共一行,表示所有非复读字符串,按照行号从小到大依次连接的结果。

输入输出样例

输入 #1
cc
b
a
cc
0
输出 #1
ccba

说明/提示

【数据范围】

字符串的个数不超过 500500 个,字符串总长度不超过 5000050000,每个字符串中只包含小写字母、数字、 . 、! 和 &,不包含空格等特殊符号。

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main() {
    vector<string> vecs;
    int flag = 1;
    string res;
    string s;
    cin >> s;
    while (s != "0") {
        flag = 1;
        for (auto&& vec : vecs) {
            if (s == vec) {
                flag = 0;
            }
        }
        if (flag == 1) vecs.emplace_back(s);
        cin >> s;
    }
    for (auto&& vec : vecs) {
        res.append(vec);
    }
    cout << res;
    return 0;
}

或:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main() {
    vector<string> vecs;
    int flag = 1;
    string s;
    cin >> s;
    while (s != "0") {
        flag = 1;
        for (auto&& vec : vecs) {
            if (s == vec) {
                flag = 0;
            }
        }
        if (flag == 1) vecs.emplace_back(s);
        cin >> s;
    }
    for (auto&& vec : vecs) {
        cout << vec;
    }
    return 0;
}

 

标签:传智杯,练习赛,T292219,flag,vecs,字符串,include,复读,vec
From: https://www.cnblogs.com/slowlydance2me/p/16907260.html

相关文章

  • T292112 [传智杯 #5 练习赛] 时钟 ----- 模拟、枚举
    你有一个电子钟,可以显示 0:00 到 23:59 之间的所有时间,以数字的形式显示。其中小时是 0 到 23(0时会显示一个0,而1到9时不会显示前导0),分钟是 00 到 59(0到......
  • P8844 [传智杯 #4 初赛] 小卡与落叶
    简要题意给出一个\(n\)个节点的以\(1\)为根的树,每一个节点\(i\)带权\(w_i\),初始时所有节点的权均为\(0\)。有\(m\)个操作,支持以下操作:1x,对于所有树上节点\(......
  • 题解 P8827 [传智杯 #3 初赛] 森林
    本题解提供两种做法。做法一为了叙述方便,先引入\(n\)级母树的概念。定义\(1\)级母树即为该子树被删去前,其所在的原来的完整的树。如下图,以\(5\)为根的一级母树......
  • 牛客练习赛105
    切蛋糕的贝贝题意:将多边形一个蛋糕切成6份,使得面积之比为1:1:4:5:1:4(顺序可以打乱),只有两种切法,一种是将过外接圆的多边形的对角线,第二种是从多边形的中心和顶点的连线,先......
  • 牛客练习赛105(A-D)
    A-切蛋糕的贝贝题解:分成1:1:4:5:1:4份,每次都要沿着两点连线切割,所以n要是16的倍数#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<l......
  • 「题解」牛客练习赛105 F 胖头鱼头胖
    先对每个位置\(i\)对集合幂级数\(x^0+x^1+\cdots+x+x^{a_i}\)FWT,那么询问就是将区间里面所有FWT后的集合幂级数作点积再IFWT后提取\(x^s\)的系数。首先可以通......
  • 牛客练习赛104 A - D
    A放羊的贝贝题意:在规定的草原矩阵中有一个羊圈,羊圈的形状同样也是矩形,在羊圈外有n头羊,贝贝想生成一个围栏将羊圈和所有的羊,生成一个单位的围栏的话需要消耗1个能量,问:生......
  • 【EA的练习赛2】【洛谷P7274】草地(单调栈,LCT维护最小生成树)
    学到了很多。我们分步走。首先在做这道题前先观察到几个小性质:操作顺序不同不影响结果发现对于每一个黑点,一通操作过后它扩展出的区域是一个矩形,而操作顺序是不影响......
  • 牛客练习赛104 D 逃亡的贝贝
    https://ac.nowcoder.com/acm/contest/43058/D思路二分答案,对于超过当前答案并且操作后可以使用的边边权当做1,短边当做0,跑一遍最短路,非常经典的二分题代码#include<alg......
  • 牛客练习赛104 C 1919810
    https://ac.nowcoder.com/acm/contest/43058/C思路一个很简单的dp记录每一位i可以给下一位的j提供的方案数理论上层数应该倒着枚举,但是我这个写法恰好避免了重复,所以正......