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

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

時間限制: 
1000ms
 
內存限制: 
131072kB
描述
在有道搜索框中,當輸入一個或者多個字符時,搜索框會出現一定數量的提示,如下圖所示:


現在給你N個單詞和一些查詢,請輸出提示結果,為了簡化這個問題,只需要輸出以查詢詞為前綴的并且按字典序排列的最前面的8個單詞,如果符合要求的單詞一個也沒有請只輸出當前查詢詞。
輸入
第一行是一個正整數N,表示詞表中有N個單詞。
接下來有N行,每行都有一個單詞,注意詞表中的單詞可能有重復,請忽略掉重復單詞。所有的單詞都由小寫字母組成。
接下來的一行有一個正整數Q,表示接下來有Q個查詢。
接下來Q行,每行有一個單詞,表示一個查詢詞,所有的查詢詞也都是由小寫字母組成,并且所有的單詞以及查詢的長度都不超過20,且都不為空
其中:N<=10000,Q<=10000
輸出
對于每個查詢,輸出一行,按順序輸出該查詢詞的提示結果,用空格隔開。
樣例輸入
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】的值指向他所指向的結構
    int flag;// 用來標記節點有沒有被使用
}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);
//繼續搜 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());//去除重復的
    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);
        
//此函數在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) 評論(0)  編輯 收藏 引用 所屬分類: ACM 數據結構c++

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(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>
            国产精品一区=区| 精品91久久久久| 亚洲精品小视频在线观看| 欧美不卡高清| 欧美大片第1页| 亚洲少妇中出一区| 亚洲欧美综合v| 黄色成人在线观看| 亚洲二区三区四区| 欧美精品www| 亚洲欧美在线网| 欧美在线播放| 亚洲欧洲在线播放| 夜夜嗨av色综合久久久综合网| 国产精品美女久久| 美女啪啪无遮挡免费久久网站| 噜噜噜久久亚洲精品国产品小说| 最新国产の精品合集bt伙计| 夜夜嗨av一区二区三区免费区 | 亚洲国产免费看| 欧美精品1区| 性欧美精品高清| 久久在线免费观看视频| 99精品视频免费| 亚洲欧美日韩在线| 亚洲国产一区二区a毛片| 一本色道久久综合狠狠躁篇的优点| 国产美女精品视频免费观看| 欧美不卡一区| 国产精品系列在线| 欧美福利视频网站| 国产精品一区=区| 亚洲欧洲一区二区三区在线观看| 国产精品欧美精品| 亚洲第一伊人| 国产日韩1区| 亚洲人成网站在线观看播放| 黄色在线一区| 亚洲欧美日韩第一区| 亚洲国产一区二区精品专区| 亚洲欧美日韩中文在线制服| 日韩午夜剧场| 久久久久久一区| 久久国产精品黑丝| 欧美三级网址| 亚洲国产第一页| 在线电影国产精品| 午夜激情综合网| 亚洲综合色激情五月| 欧美激情一区二区三区| 免费观看成人网| 国产一区二区三区四区在线观看 | 欧美在线关看| 欧美日韩亚洲天堂| 亚洲国产美女精品久久久久∴| 好看的亚洲午夜视频在线| 亚洲摸下面视频| 亚洲欧美国产精品va在线观看| 欧美激情第三页| 亚洲电影在线看| 亚洲精品国产日韩| 欧美成人免费观看| 欧美激情按摩| 亚洲国产人成综合网站| 久久免费黄色| 免费视频一区二区三区在线观看| 狠狠色狠狠色综合日日91app| 亚洲男女毛片无遮挡| 欧美一区二区日韩一区二区| 国产精品伦一区| 亚洲自拍偷拍网址| 欧美一区二区三区在线看 | 欧美日韩国产一区二区三区| 亚洲国产精品一区二区www| 一区在线免费观看| 久久一区二区三区超碰国产精品 | 9i看片成人免费高清| 欧美大片一区二区三区| 亚洲国产成人精品女人久久久| 亚洲国产高清在线| 欧美成人久久| 夜夜狂射影院欧美极品| 亚洲免费视频观看| 国产亚洲欧美日韩一区二区| 久久久久免费观看| 亚洲激情偷拍| 亚洲欧美国产日韩天堂区| 国产情人综合久久777777| 久久精品系列| 亚洲国产经典视频| 亚洲自拍另类| 狠狠网亚洲精品| 欧美精品激情blacked18| 在线一区二区三区四区| 久久九九国产精品| 99视频一区| 国产精品一区在线观看| 久久久亚洲人| 中文在线不卡| 蜜臀91精品一区二区三区| 99人久久精品视频最新地址| 国产伦精品一区二区三区视频黑人 | 日韩特黄影片| 国产欧美日韩激情| 免费中文日韩| 亚洲综合三区| 亚洲精品乱码久久久久久蜜桃91 | 久久www成人_看片免费不卡| 亚洲电影下载| 国产精品一区亚洲| 欧美福利视频在线| 久久se精品一区二区| 99国产精品久久久久老师| 麻豆freexxxx性91精品| 亚洲免费影院| 亚洲精品乱码久久久久久黑人 | 亚洲视频在线观看| 亚洲国产专区| 国产在线视频不卡二| 欧美色欧美亚洲高清在线视频| 久久久www| 亚洲欧美日本日韩| aa级大片欧美三级| 亚洲电影av在线| 久久久天天操| 欧美亚洲三区| 亚洲综合成人在线| 一区二区三区福利| 99精品久久久| 最新中文字幕一区二区三区| 国内久久婷婷综合| 国产精品羞羞答答| 国产精品福利久久久| 欧美激情在线观看| 欧美激情一区二区三区在线| 久久久在线视频| 欧美一级视频免费在线观看| 亚洲一区精品在线| 亚洲一区视频| 亚洲免费一级电影| 亚洲免费视频中文字幕| 一区二区三区日韩欧美| 日韩视频―中文字幕| 亚洲日本欧美日韩高观看| 欧美激情五月| 亚洲国产毛片完整版| 亚洲国产婷婷香蕉久久久久久| 久热re这里精品视频在线6| 久久久久免费视频| 久久全球大尺度高清视频| 老鸭窝亚洲一区二区三区| 久久综合给合久久狠狠狠97色69| 久久天堂av综合合色| 久久一区二区三区超碰国产精品| 久久亚洲精品视频| 欧美freesex交免费视频| 免费亚洲一区二区| 亚洲高清视频在线观看| 亚洲日本欧美在线| 亚洲网站在线播放| 欧美一区二区三区另类| 久久久久99| 欧美超级免费视 在线| 欧美日韩小视频| 国产精品一区一区三区| 一色屋精品视频在线观看网站| 亚洲国产一区二区三区a毛片| 日韩午夜三级在线| 欧美一区二区三区的| 六月婷婷一区| 99日韩精品| 久久精品国产亚洲高清剧情介绍| 麻豆精品视频| 欧美日韩在线播放| 国产在线日韩| 在线亚洲美日韩| 久久久久久久久久久成人| 91久久精品美女| 先锋a资源在线看亚洲| 女人香蕉久久**毛片精品| 欧美性猛交xxxx免费看久久久| 韩国免费一区| 在线一区欧美| 欧美mv日韩mv亚洲| 亚洲综合首页| 欧美日本国产精品| 国产一区在线视频| 亚洲图片在区色| 女仆av观看一区| 亚洲欧美日韩电影| 欧美裸体一区二区三区| 一区二区三区在线看| 亚洲男人第一网站| 亚洲国产日韩精品| 久久久久久久国产| 国产欧美日韩三级| 亚洲天堂av电影| 欧美激情中文不卡| 久久久久五月天| 国产伦精品免费视频|