日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU_1075 What Are You Talking About(Trie 树)

發(fā)布時(shí)間:2025/7/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU_1075 What Are You Talking About(Trie 树) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  題意:這題很好理解,給一個(gè)字典,上邊有火星文對(duì)應(yīng)的英語,讓后輸入一句話,把它翻譯成英語。

  思路:定義Tire樹時(shí)加一個(gè)存放字符串的數(shù)組s[],按字典上的火星文建立Trie樹,在每一個(gè)火星文的末尾將對(duì)應(yīng)的英文存到s[]中。查找時(shí)如果能在Trie樹中找到,就將s[]對(duì)應(yīng)的串取出來(至于怎么取,自己先想想。。。)分解輸入的句子時(shí)注意細(xì)節(jié)。還有就是靜態(tài)建立Trie樹,我開始用動(dòng)態(tài),WA了。。。

My Code:

#include <iostream>
#include
<cstdio>
#include
<cstring>
#include
<cstdlib>

using namespace std;

const int N = 3007;

struct node
{
int flag;
char t[11];
struct node * next[26];
};

node
* newword()
{
int i;
node
* p = new node;
p
->flag = 0;
for(i = 0; i < 26; i++)
p
->next[i] = NULL;
return p;
}

void insert(node * root, char *s, char *s2)
{
node
* p = root;
int i, len = strlen(s), tmp;
for(i = 0; i < len; i++)
{
tmp
= s[i] - 'a';
if(p->next[tmp] == NULL)
p
->next[tmp] = newword();
p
= p->next[tmp];
}
p
->flag = 1;
strcpy(p
->t, s2);
}

int search(node * root, char *s, char *tm)
{
node
* p = root;
int i, tmp, len = strlen(s);
for(i = 0; i < len; i++)
{
tmp
= s[i] - 'a';
if(p->next[tmp] == NULL)
return 0;
p
= p->next[tmp];
}
if(p->flag)
{
strcpy(tm, p
->t);
return 1;
}
return 0;
}

void del(node * p)
{
if(p)
{
for(int i = 0; i < 26; i++)
if(p->next[i])
del(p
->next[i]);
}
free(p);
p
= NULL;
}

int main()
{
//freopen("data.in", "r", stdin);
node * root;
root
= newword();
char s[11], s2[11];
while(scanf("%s", s) != EOF)
{
if(!strcmp(s, "END")) break;
if(strcmp(s, "START"))
{
scanf(
"%s", s2);
insert(root, s2, s);
}
}
getchar();
char line[N], tm[11];
while(gets(line) != NULL)
{
if(!strcmp(line, "END")) break;
if(strcmp(line, "START"))
{
int len = strlen(line);
int k = 0;
memset(s,
0, sizeof(s));
for(int i = 0; i < len; i++)
{

if(islower(line[i]))
{
s[k
++] = line[i];
if(i == len - 1)
{
memset(tm,
0, sizeof(tm));
if(search(root, s, tm))
{
int l = strlen(tm);
for(int j = 0; j < l; j++)
printf(
"%c", tm[j]);
}
else
{
for(int j = 0; j < k; j++)
printf(
"%c", s[j]);
}
break;
}
}
else
{
memset(tm,
0, sizeof(tm));
if(search(root, s, tm))
{
int l = strlen(tm);
for(int j = 0; j < l; j++)
printf(
"%c", tm[j]);
}
else
for(int j = 0; j < k; j++)
printf(
"%c", s[j]);
printf(
"%c", line[i]);
k
= 0;memset(s, 0, sizeof(s));
}
}
putchar(
'\n');
}
memset(line,
0, sizeof(line));
}
del(root);
return 0;
}

總結(jié)

以上是生活随笔為你收集整理的HDU_1075 What Are You Talking About(Trie 树)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕av解说 | 91色影院 | free性欧美hd精品4k | 男人天堂av电影 | 激情文学亚洲 | 天天爱天天做天天爽 | 国产黄色网 | 亚洲精品乱码久久久久久国产主播 | 欧美另类自拍 | 国产污视频在线播放 | 中文字幕一区二区三区乱码不卡 | 欧美日韩极品 | 美女又爽又黄视频毛茸茸 | 最新av不卡 | 天堂网一区二区三区 | 91网址在线观看 | www.欧美国产 | 91老女人| 欧美日韩免费一区二区三区 | 欧美在线观看视频一区二区 | 亚洲av久久久噜噜噜熟女软件 | 日韩福利网 | 亚洲色图21p | 国产在线一区视频 | 亚洲图片在线播放 | 污视频免费在线 | 免费在线观看av | 黑人操日本女人 | 91国内精品 | 亚洲毛片a | 黄色大片在线免费观看 | 天天操天天操天天操天天操天天操 | 一区二区国产视频 | 麻豆影视免费观看 | 成人做受视频试看60秒 | 岛国片在线免费观看 | 性欧美成人播放77777 | 91精品国产99久久久久久红楼 | 欧美资源在线观看 | 久久精品噜噜噜成人88aⅴ | 91久久精品夜夜躁日日躁欧美 | 亚洲精品无码久久久 | 中文字幕网站在线观看 | 国产精品久久亚洲7777 | 国产香蕉视频在线观看 | 国产香蕉视频在线播放 | 探花视频在线免费观看 | 中国女人内精69xxxxxx | 亚洲精品国产精品国自产在线 | 一区在线视频 | 精品国偷自产国产一区 | 国产美女又黄又爽又色视频免费 | 关秀媚三级 | va欧美 | 成人免费在线 | 98堂 最新网名 | 亚洲成人久久久 | 国产成人观看 | 肉性天堂| 亚洲精品一区 | 国产在线欧美日韩 | 干欧美 | 青草青草久热 | 精品福利片 | 亚洲精品网站在线 | 欧洲a级片 | 日韩欧美精品在线 | 日韩在线观看网站 | 国产黄色大全 | 91福利社在线观看 | 免费成人黄色网址 | 福利亚洲 | 91麻豆精品91久久久久同性 | 一级黄色免费观看 | 亚洲国产精品久久久 | 中文字幕精品一区二区三区视频 | 99热这里只有精品在线观看 | 人妻射精一区二区 | 天堂网视频在线观看 | 成人福利免费视频 | 国产av一区二区三区 | 亚洲一区二区三区四区五区xx | 在线午夜av | 五月婷婷色丁香 | 少妇又色又紧又黄又刺激免费 | 亚洲精品久久久久久一区二区 | 亚洲两性视频 | 激情四射综合网 | 亚洲av永久无码精品一区二区国产 | 五月天激情小说 | 69av在线| 色婷婷综合激情 | 久久久精品国产sm调教网站 | 亚洲av无一区二区三区久久 | 欧美在线小视频 | 日韩欧美亚洲一区二区 | 免费久久久久 | 天天夜夜骑| 1024福利|