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

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

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


現(xiàn)在給你N個單詞和一些查詢,請輸出提示結(jié)果,為了簡化這個問題,只需要輸出以查詢詞為前綴的并且按字典序排列的最前面的8個單詞,如果符合要求的單詞一個也沒有請只輸出當(dāng)前查詢詞。
輸入
第一行是一個正整數(shù)N,表示詞表中有N個單詞。
接下來有N行,每行都有一個單詞,注意詞表中的單詞可能有重復(fù),請忽略掉重復(fù)單詞。所有的單詞都由小寫字母組成。
接下來的一行有一個正整數(shù)Q,表示接下來有Q個查詢。
接下來Q行,每行有一個單詞,表示一個查詢詞,所有的查詢詞也都是由小寫字母組成,并且所有的單詞以及查詢的長度都不超過20,且都不為空
其中:N<=10000,Q<=10000
輸出
對于每個查詢,輸出一行,按順序輸出該查詢詞的提示結(jié)果,用空格隔開。
樣例輸入
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 樹
#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];// 對于某一層而言  next【i】 中i就表示該層有的字符了 next【i】的值指向他所指向的結(jié)構(gòu)
    int flag;// 用來標(biāo)記節(jié)點(diǎn)有沒有被使用
}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)//此樹在組織的時候 就是按字典來排的 
{
    
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 按根開始 找到匹配 c 第三層的 P 
    {
        p
=trie[p].next[str[k]-'a'];
        ans[k]
=str[k];
        k
++
    }
    
if(p==-1)// 沒有匹配的 那么直接打印 按題意來
    {
        printf(
"%s\n",str);
        
return;
    }
    dfs(k,p);
//繼續(xù)搜 str[k]個字符
    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;
}


同時還看到一位牛人 用stl 寫的 那個牛叉 也貼上了 以供自己參考

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 付翔 閱讀(333) 評論(0)  編輯 收藏 引用 所屬分類: ACM 數(shù)據(jù)結(jié)構(gòu)c++

<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

CSDN - 我的blog地址

博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品入口尤物| 久久综合九色欧美综合狠狠| 久久婷婷激情| 亚洲国产精品va在看黑人| 久久国产欧美精品| 性欧美在线看片a免费观看| 欧美尤物巨大精品爽| 久久精彩免费视频| 老鸭窝亚洲一区二区三区| 亚洲第一综合天堂另类专| 亚洲精选国产| 亚洲欧美日韩在线高清直播| 久久精品女人的天堂av| 欧美精品一区在线播放| 国产精品日日摸夜夜摸av| 狠狠噜噜久久| 夜夜嗨av色综合久久久综合网| 亚洲欧美精品伊人久久| 老巨人导航500精品| 亚洲精品一区二| 欧美一级黄色网| 欧美日韩美女在线| 伊人成综合网伊人222| 亚洲网站在线观看| 美女在线一区二区| 亚洲一区二区三区四区在线观看| 久久蜜桃精品| 国产欧美日韩精品丝袜高跟鞋| 91久久精品国产91性色tv| 欧美在线视频一区二区| 日韩一区二区免费高清| 老司机成人网| 国产综合香蕉五月婷在线| 一区二区三区欧美成人| 乱人伦精品视频在线观看| 亚洲天堂久久| 欧美日韩国产色视频| 在线观看国产一区二区| 久久久精品国产免费观看同学 | 亚洲精品护士| 性色av一区二区三区红粉影视| 欧美 日韩 国产在线| 亚洲在线视频| 欧美日韩黄视频| 亚洲精品一区二区网址| 美女图片一区二区| 欧美在线观看www| 国产精品第三页| 一区二区三区偷拍| 欧美激情中文字幕乱码免费| 久久久久国产一区二区| 国产一区二区久久久| 午夜精品视频| 亚洲一区二区三区免费视频| 欧美日韩国产综合视频在线| 亚洲人成在线播放网站岛国| 欧美一区二区免费| 亚洲精品自在久久| 一区二区三区高清在线观看| 亚洲午夜女主播在线直播| 欧美国产日本| 91久久精品国产91久久性色| 蜜臀a∨国产成人精品| 欧美在线综合| 国产色综合天天综合网| 午夜精品国产| 篠田优中文在线播放第一区| 国产精品一区免费在线观看| 欧美在线免费播放| 欧美一区二区精品在线| 激情成人av| 亚洲第一天堂无码专区| 欧美日韩的一区二区| 中文一区二区| 欧美凹凸一区二区三区视频| 国产欧美日韩一级| 欧美一级视频免费在线观看| 欧美日韩成人在线视频| 亚洲国产欧美一区二区三区丁香婷| 国模精品娜娜一二三区| 欧美一区二区在线观看| 久久精品一区中文字幕| 激情欧美国产欧美| 久久人人爽人人爽| 欧美激情1区| 一本色道久久综合亚洲精品不| 久久中文字幕一区| 欧美揉bbbbb揉bbbbb| 亚洲人成网站影音先锋播放| 国产美女一区| 午夜精品久久久| 亚洲天堂av图片| 韩国av一区二区三区在线观看| 欧美暴力喷水在线| 欧美视频在线观看免费| 久久精品久久99精品久久| 久久亚洲精品欧美| 一区二区电影免费在线观看| 亚洲视频在线播放| 亚洲高清不卡在线观看| 亚洲网站在线看| 亚洲国产你懂的| 亚洲欧美欧美一区二区三区| 亚洲国产成人高清精品| 亚洲一区二区3| 亚洲精品国产精品国产自| 亚洲欧美影音先锋| 一区二区91| 久久一二三四| 久久电影一区| 欧美日韩三级视频| 欧美bbbxxxxx| 国产一区日韩一区| 一本大道av伊人久久综合| 1000部国产精品成人观看| 亚洲图片你懂的| 一区二区三区四区五区视频| 欧美jizz19性欧美| 免费成人性网站| 国产乱人伦精品一区二区| 亚洲日本一区二区三区| 在线观看日韩av电影| 午夜免费日韩视频| 午夜国产欧美理论在线播放| 欧美激情一区二区久久久| 老色鬼久久亚洲一区二区| 国产伦精品一区二区三区四区免费| 亚洲日本黄色| 亚洲另类黄色| 欧美激情二区三区| 亚洲国产激情| 亚洲精品国产精品国产自| 美女在线一区二区| 欧美成人一品| 亚洲激情偷拍| 女人色偷偷aa久久天堂| 欧美成人第一页| 亚洲高清视频在线观看| 久久综合狠狠综合久久激情| 美日韩在线观看| 亚洲国产精品日韩| 牛牛国产精品| 亚洲人成小说网站色在线| 日韩视频亚洲视频| 欧美日韩国产天堂| 9色国产精品| 欧美亚洲视频| 国内视频精品| 老色批av在线精品| 亚洲国产国产亚洲一二三| 一本久久精品一区二区| 欧美日韩日本网| 亚洲影音一区| 亚洲欧洲一区二区三区久久| 国产情侣一区| 欧美一区二区三区四区在线| 久久三级视频| 亚洲欧洲一区二区三区| 欧美理论视频| 亚洲欧美成人综合| 浪潮色综合久久天堂| 亚洲理论在线观看| 欧美性片在线观看| 午夜免费在线观看精品视频| 久久影院午夜片一区| 亚洲麻豆av| 国产精一区二区三区| 女人色偷偷aa久久天堂| 亚洲视频www| 免费成人小视频| 亚洲欧美日韩精品久久亚洲区| 国产亚洲欧美在线| 欧美黄色aaaa| 欧美一区二区啪啪| 最新国产精品拍自在线播放| 先锋影音久久| 亚洲精品一区在线观看| 国产乱子伦一区二区三区国色天香| 久久婷婷久久| 亚洲午夜精品视频| 欧美激情亚洲综合一区| 午夜视频精品| 亚洲日本成人在线观看| 国产精品日本精品| 欧美黄色一区| 久久精品综合一区| 亚洲无亚洲人成网站77777| 欧美www在线| 久久激情视频久久| 亚洲一区网站| 亚洲精选中文字幕| 伊人久久大香线蕉综合热线| 亚洲少妇一区| 亚洲一区二区三区高清| 亚洲自拍啪啪| 久久精品国产成人| 亚洲国产欧美在线人成| 亚洲愉拍自拍另类高清精品| 在线精品视频一区二区| 国产精品一区二区三区成人|