洛谷P1628 合并序列

题目描述

有N个单词和字符串T,按字典序输出以字符串T为前缀的所有单词。

输入输出格式

输入格式:

输入文件第一行包含一个正整数N;

接下来N行,每行一个单词,长度不超过100;

最后一行包含字符串T。

【数据规模】

对于60%的数据,满足1≤N≤1000;

对于100%的数据,满足1≤N≤100000且所有字符均为小写字母;

输出格式:

按字典序升序输出答案。

输入输出样例

输入样例#1:
6
na
no
ki
ki
ka
ku
k
输出样例#1:
ka
ki
ki
ku
stl优先队列
屠龙宝刀点击就送
#include <bits/stdc++.h>
#include <queue>

using namespace std;

priority_queue<string,vector<string>,greater<string> >q;
int n,i;
string str,T,topp;
int main()
{
    cin>>n;
    for(i=0;i<n;++i)
    {
        cin>>str;
        q.push(str);
    }
    cin>>T;
    while(!q.empty())
    {
        topp=q.top();
        if(!topp.find(T)) //是前缀 所以必须从0开始匹配到
                cout<<topp<<endl;
        q.pop();
    }
    return 0;
}


 
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
原文地址:https://www.cnblogs.com/ruojisun/p/6492402.html