2208G 影子字符串

· · 题解

Source & Knowledge

2022年8月语言月赛,由洛谷网校入门计划/基础计划提供。

由 皎月半撒花 命题。

考察字符串的输入输出。

文字题解

题意简述

给出若干个字符串,若某个字符串是第一次出现,则输出。

问题分析

用 string 类型数组存储已经输入的字符串,需要另开一个变量统计已经输入的字符串个数。

对于每个新输入的字符串,枚举之前输入的所有字符串,如果都不同,则输出。

string s[600];
while(true) {
    ++cnt; cin >> s[cnt];
    if(s[cnt] == "0") break;
    bool occ = false;
    for(int i = 1; i < cnt; i++) {
        if(s[i] == s[cnt]) {
            occ = true; break;
        }
    }
    if(occ == false) cout << s[cnt];
}

当然,也可以使用 STL 中 map,set 等容器,亦可以使用字符串 Hash,字典树等算法或数据结构,由于是语言月赛,在这里不再赘述。

视频题解