青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

付翔的專欄
在鄙視中成長(zhǎng) 記錄成長(zhǎng)的點(diǎn)滴
posts - 106,  comments - 32,  trackbacks - 0
昨天斷網(wǎng) 博客沒(méi)有寫(xiě)全 呵呵

時(shí)間限制: 
1000ms
 
內(nèi)存限制: 
131072kB
描述
在有道搜索框中,當(dāng)輸入一個(gè)或者多個(gè)字符時(shí),搜索框會(huì)出現(xiàn)一定數(shù)量的提示,如下圖所示:


現(xiàn)在給你N個(gè)單詞和一些查詢,請(qǐng)輸出提示結(jié)果,為了簡(jiǎn)化這個(gè)問(wèn)題,只需要輸出以查詢?cè)~為前綴的并且按字典序排列的最前面的8個(gè)單詞,如果符合要求的單詞一個(gè)也沒(méi)有請(qǐng)只輸出當(dāng)前查詢?cè)~。
輸入
第一行是一個(gè)正整數(shù)N,表示詞表中有N個(gè)單詞。
接下來(lái)有N行,每行都有一個(gè)單詞,注意詞表中的單詞可能有重復(fù),請(qǐng)忽略掉重復(fù)單詞。所有的單詞都由小寫(xiě)字母組成。
接下來(lái)的一行有一個(gè)正整數(shù)Q,表示接下來(lái)有Q個(gè)查詢。
接下來(lái)Q行,每行有一個(gè)單詞,表示一個(gè)查詢?cè)~,所有的查詢?cè)~也都是由小寫(xiě)字母組成,并且所有的單詞以及查詢的長(zhǎng)度都不超過(guò)20,且都不為空
其中:N<=10000,Q<=10000
輸出
對(duì)于每個(gè)查詢,輸出一行,按順序輸出該查詢?cè)~的提示結(jié)果,用空格隔開(kāi)。
樣例輸入
10
a
ab
hello
that
those
dict
youdao
world
your
dictionary
6
bob
d
dict
dicti
yo
z
樣例輸出
bob
dict dictionary
dict dictionary
dictionary
youdao your
z









































































用的是trie 樹(shù)
#include <stdio.h>
#include 
<stdlib.h>
#include 
<string.h>
#include 
<iostream>
#include 
<string>
#include 
<vector>
#include 
<map>
#include 
<queue>
#include 
<algorithm>
using namespace std;

/*
*
*/
struct node{
    
int next[26];// 對(duì)于某一層而言  next【i】 中i就表示該層有的字符了 next【i】的值指向他所指向的結(jié)構(gòu)
    int flag;// 用來(lái)標(biāo)記節(jié)點(diǎn)有沒(méi)有被使用
}trie[210000];
char str[100];
char ans[100];
int totle=1;
void insert(){
    
int p=0;
    
int k=0;
    
while(str[k]){
        
int v=str[k]-'a';
        
if(trie[p].next[v]==-1)trie[p].next[v]=totle++
        p
=trie[p].next[v];
        k
++;
    }
    trie[p].flag
=1;
}
int cur;
void dfs(int k,int p)//此樹(shù)在組織的時(shí)候 就是按字典來(lái)排的 
{
    
if(cur>=8)return;
    
if(trie[p].flag!=-1){
        ans[k]
=0;
        
if(cur==0)printf("%s",ans);
        
else printf(" %s",ans);
        cur
++;
    }
    
for(int i=0;i<26;i++)
        
if(trie[p].next[i]!=-1){
            ans[k]
=i+'a';
            dfs(k
+1,trie[p].next[i]);
        }
        
return;
}
void find(){
    cur
=0;
    
int p=0,k=0;
    
while(str[k]&&p!=-1)//比如 abc 按根開(kāi)始 找到匹配 c 第三層的 P 
    {
        p
=trie[p].next[str[k]-'a'];
        ans[k]
=str[k];
        k
++
    }
    
if(p==-1)// 沒(méi)有匹配的 那么直接打印 按題意來(lái)
    {
        printf(
"%s\n",str);
        
return;
    }
    dfs(k,p);
//繼續(xù)搜 str[k]個(gè)字符
    printf("\n");
}
int main() 
{
    freopen(
"in.txt","r",stdin);
    vector
<string> my;
    
int n;
    memset(trie,
-1,sizeof(trie));
    scanf(
"%d",&n);
    
for(int i=0;i<n;i++){
        scanf(
"%s",str);
        insert();
    }
    
int q;
    scanf(
"%d",&q);
    
while(q--){
        scanf(
"%s",str);
        find();
    }
    
return 0;
}


同時(shí)還看到一位牛人 用stl 寫(xiě)的 那個(gè)牛叉 也貼上了 以供自己參考

using namespace std;

string ts;

bool issub(const string c)
{
    
if (ts.length() > c.length()) return false;
    
return ts == c.substr(0, ts.length());//c字串中要存在ts 返回true
}

typedef vector
<string> DIC;

int main()
{
    DIC dict;
    
string str;
    size_t dsize, ssize;
    cin 
>> dsize;
    dict.reserve(dsize);
//確保dict 的容量至少為dsize
    for (size_t i = 0; i < dsize; ++i)
    {
        cin 
>> str;
        dict.push_back(str);
    }
    std::sort(dict.begin(), dict.end());
//排序
    dict.erase(std::unique(dict.begin(), dict.end()), dict.end());//去除重復(fù)的
    cin >> ssize;
    
for (size_t i = 0; i < ssize; ++i)
    {
        DIC::iterator iter;
        cin 
>> ts;
        
bool found = false;
        iter 
= lower_bound(dict.begin(), dict.end(),ts);
        
//此函數(shù)在msdn 的解釋為 在dict 中插入ts 最小的位置并維持序列有序
        for(size_t j=0;j<8 && iter!=dict.end();++j,++iter)
        {
            
if(issub(*iter)){
                cout
<<*iter<<" ";
                found
=true;
            }
        }
        
if (!found)
            cout 
<< ts;
        cout 
<< endl;
    }
    
return 0;
}

posted on 2010-05-30 00:03 付翔 閱讀(334) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ACM 數(shù)據(jù)結(jié)構(gòu)c++

<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

CSDN - 我的blog地址

博客

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩人人澡狠狠躁视频| 午夜精品久久久久久久99热浪潮| 一本久道久久综合中文字幕 | 欧美激情一区二区三区在线| 欧美一级在线播放| 欧美日韩天天操| 欧美国产综合视频| 一区二区视频免费完整版观看| 亚洲一区亚洲二区| 亚洲欧美另类久久久精品2019| 欧美激情在线| 亚洲激情av| 最新日韩中文字幕| 免费久久精品视频| 麻豆成人在线播放| 国内精品美女av在线播放| 亚洲欧美日本日韩| 欧美亚洲色图校园春色| 国产精品久久久久久一区二区三区| 最近看过的日韩成人| 亚洲精品黄色| 欧美高清在线观看| 亚洲人成艺术| 亚洲无线视频| 国产精品你懂的| 亚洲欧美国产精品桃花| 午夜精品婷婷| 国产视频久久| 久久成人精品| 女仆av观看一区| 亚洲高清免费在线| 欧美高清一区| 在线亚洲精品| 欧美在线影院在线视频| 国产一区日韩二区欧美三区| 久久久xxx| 欧美激情国产日韩精品一区18| 亚洲黄色性网站| 欧美伦理视频网站| 亚洲视频免费观看| 久久激情中文| 伊人男人综合视频网| 欧美成年人在线观看| 亚洲精品偷拍| 香蕉久久国产| 在线成人激情| 欧美日韩亚洲在线| 欧美在线你懂的| 欧美a级在线| 中文亚洲免费| 国产在线播放一区二区三区| 久久天天狠狠| 一区二区三区欧美在线| 久久视频一区二区| 99热这里只有精品8| 国产精品美腿一区在线看| 久久精品国产亚洲a| 亚洲激情在线激情| 久久国产精品毛片| 亚洲精品美女在线观看| 国产精品一区二区三区成人| 老司机精品视频网站| 99精品国产高清一区二区 | 狂野欧美激情性xxxx欧美| 最新国产乱人伦偷精品免费网站| 欧美午夜精品一区| 鲁大师成人一区二区三区| 一区二区三区高清在线| 欧美 亚欧 日韩视频在线| 亚洲男人的天堂在线观看| 亚洲电影免费| 国产麻豆日韩| 欧美日韩国产精品一卡| 久久久久国产精品厨房| 在线一区亚洲| 欧美激情一区| 久久久久久婷| 亚洲欧美成人一区二区三区| 最新亚洲视频| 一区二区三区在线观看国产| 国产精品视区| 欧美日韩ab片| 美女尤物久久精品| 欧美在线二区| 午夜国产精品视频免费体验区| 亚洲激情第一区| 免费国产自线拍一欧美视频| 欧美一区二区观看视频| 亚洲午夜女主播在线直播| 亚洲国产综合在线| 一区免费视频| 国产亚洲在线| 国产亚洲欧美一区二区| 国产精品久久久久91| 欧美日韩一级黄| 欧美激情综合色综合啪啪| 美国十次成人| 嫩草伊人久久精品少妇av杨幂| 欧美一区永久视频免费观看| 亚洲欧美日韩高清| 亚洲一区在线播放| 亚洲一区二区三区欧美| 亚洲性感美女99在线| 在线亚洲高清视频| 这里是久久伊人| 在线一区二区三区四区五区| 亚洲社区在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲午夜视频| 亚洲自拍偷拍福利| 亚洲欧美精品伊人久久| 亚洲综合色婷婷| 欧美一级片一区| 欧美在线一二三区| 久久久国产视频91| 久久亚洲欧美| 欧美成人免费一级人片100| 欧美成人黑人xx视频免费观看| 免费在线看一区| 欧美日韩午夜| 国产精品一级久久久| 国内不卡一区二区三区| 亚洲高清中文字幕| 亚洲精品国产精品国产自| 亚洲乱码国产乱码精品精| 在线亚洲欧美视频| 久久国产欧美日韩精品| 欧美aⅴ一区二区三区视频| 亚洲国产成人高清精品| 99re8这里有精品热视频免费 | 国产精品99久久久久久久久久久久 | 国产精品二区二区三区| 国产视频丨精品|在线观看| 国自产拍偷拍福利精品免费一| 在线精品国产成人综合| 99在线热播精品免费99热| 亚洲欧美一区二区三区极速播放 | 欧美日韩综合精品| 国产一区成人| 日韩网站在线观看| 香港久久久电影| 亚洲国产成人av在线| 亚洲免费在线观看| 老司机精品福利视频| 国产精品福利在线观看网址| 国一区二区在线观看| 亚洲午夜久久久久久久久电影院| 久久久久久一区二区| 亚洲精品一区二区三区在线观看| 亚洲欧美日韩一区二区在线| 麻豆精品精华液| 国产九九视频一区二区三区| 亚洲欧洲另类| 久久久噜噜噜久久中文字免 | 亚洲第一天堂av| 午夜精品三级视频福利| 欧美精品成人| 一区二区亚洲精品国产| 午夜精品国产更新| 亚洲高清色综合| 久久精品1区| 国产精品久久久久久妇女6080| 亚洲大片一区二区三区| 欧美在线一区二区| 一本高清dvd不卡在线观看| 久久综合一区| 国产一区二区三区在线观看网站| 亚洲一级在线观看| 亚洲国产精品va在线观看黑人| 亚洲欧美日韩第一区| 欧美日韩国产探花| 亚洲精品中文字幕女同| 蜜臀av国产精品久久久久| 午夜精品成人在线| 国产精品成人一区二区艾草| 亚洲人成久久| 欧美激情精品久久久| 久久久久久网| 黄色亚洲免费| 久久久国产精品一区| 亚洲一区二区三区精品在线| 欧美无砖砖区免费| av成人免费在线观看| 亚洲黄色影院| 欧美男人的天堂| 99视频精品免费观看| 亚洲精品国产精品国产自| 免费国产自线拍一欧美视频| 亚洲国产精品久久久久婷婷老年| 久久综合电影一区| 久久精品女人天堂| 国模一区二区三区| 久久伊人亚洲| 久久久久久久波多野高潮日日| 国产真实乱子伦精品视频| 久久精品人人| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲福利国产| 亚洲国产精品女人久久久| 欧美另类久久久品|