「弗里的的语言」

题目描述

小发明家弗里想创造一种新的语言,众所周知,发明一门语言是非常困难的,首先你就要克服一个困难就是,有大量的单词需要处理,现在弗里求助你帮他写一款程序,判断是否出现重复的两个单词。

输入描述

第 11 行,输入 NN,代表共计创造了多少个单词。

第 22 行至第 N+1N+1 行,输入 NN 个单词。

1\leq N \leq 10^41≤N≤104,保证字符串的总输入量不超过 10^6106。

输出描述

输出仅一行。若有重复的单词,就输出重复单词,没有重复单词,就输出 NO,多个重复单词输出最先出现的。

输入输出样例

示例1

输入

6
1fagas 
dsafa32j
lkiuopybncv
hfgdjytr
cncxfg
sdhrest

输出

NO

示例2

输入

5
sdfggfds
fgsdhsdf
dsfhsdhr
sdfhdfh
sdfggfds

输出

sdfggfds

运行限制

  • 最大运行时间:3s
  • 最大运行内存: 512M

时间要求不大,直接暴力枚举了

#include<iostream>
#include<queue>
using namespace std;
int main()
{
    int n,count=0;
    bool flag = false;
    cin >> n;
    queue<string> q;
    string* s = new string[n];
    for (int i = 0; i < n; i++)
    {
        cin >> s[i];
    }
    for (int i = 0; i < n-1; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            if (s[i] == s[j])
            {
                for (int k = 0; k < count; k++)//这里要判断之前是否已经存过s[i]了
                {
                    if (s[i] == s[k]) flag = true;
                }
                if (flag == false)
                {
                    q.push(s[i]);
                    count++;
                    flag = true;
                }
            }
         }
    }
    while (!q.empty()&&count>0)
    {
        cout << q.front() << endl;
        q.pop();
    }
    if (count == 0) cout << "NO";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值