poj2001

第一个不依靠模板拍出来的字典树,题目比较水,开始空间没开对WA了无数次,纠结了一个多小时

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char dic[10000][25];//这里一开始开了20,死活不对
typedef struct node
{
    int count;
    struct node *next[26];
}node;
node *root=new node();
void insert(int num)
{
    int len=strlen(dic[num]);
    node *now=root;
    node *newnode;
    for(int i=0;i<len;i++)
    {
        if(now->next[dic[num][i]-'a']!=NULL)
        {
            now=now->next[dic[num][i]-'a'];
            (now->count)++;
        }
        else
        {
            newnode=new node();
            newnode->count=1;
            for(int j=0;j<26;j++)
            newnode->next[j]=NULL;
            now->next[dic[num][i]-'a']=newnode;
			now=newnode;
        }
    }
}
void search(int num)
{
    int len=strlen(dic[num]);
    node *now=root;
    for(int i=0;i<len;i++)
    {
            now=now->next[dic[num][i]-'a'];
            printf("%c",dic[num][i]);
            if(now->count==1)
                  return ;
    }
	return ;
}
int main()
{
    int i,j,k=0;
    root->count=0;
    for(i=0;i<26;i++)
    root->next[i]=NULL;
    while(cin>>dic[k]&& dic[k][0]!='0')//调试时用的,提交时修改
    {
        insert(k);
        k++;
    }
    for(i=0;i<k;i++)
    {
        printf("%s ",dic[i]);
        search(i);
        printf("\n");
    }
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Leetcode 77 Combinations

    Given two integers n and k, return all possible combinations of k numbers out o...

    triplebee
  • Leetcode 65 Valid Number DFA有限状态机

    Validate if a given string is numeric. Some examples: "0" => true " 0.1 " =>...

    triplebee
  • Leetcode 87 Scramble String

    Given a string s1, we may represent it as a binary tree by partitioning it to t...

    triplebee
  • 利用双向注意流进行机器理解

    本文基于Bi-Directional Attention Flow For Machine Comprehension一文

    Mezereon
  • element-ui 表格hook 及相关组件

    copy_left
  • HDU5972Regular Number(ShiftAnd算法 bitset)

    接下来\(n\)行,每行开头有一个整数\(num\)表示匹配串中该位置的字符可以在\(num\)个桅子花出现,接下来输入这\(num\)个位置

    attack
  • 阶乘很简单?恕我直言,阶乘相关的面试题你还真不一定懂!

    对于如何算 n 的阶乘,只要你知道阶乘的定义,我想你都知道怎么算,但如果在面试中,面试官抛给你一道与阶乘相关,看似简单的算法题,你还真不一定能够给出优雅的答案!...

    帅地
  • 喂,快给我打一个小程序预览码

    开发小程序的朋友们随时都会听到一句话:“喂,快给我打一个xxx环境的预览码”,无论你正在干什么,都得赶紧地回一句:“稍等,这就给你打码……”

    程序员宝库
  • Golang基础之数组 转

    数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(注:当然,如...

    双面人
  • 史上最壕无人车买家诞生!泥潭中的Uber要搞个超大的无人出租车队

    Root 岳排槐 编译整理 量子位 出品 | 公众号 QbitAI ? Uber从泥潭中颤抖着伸出一只手,拍下了史上最大无人车订单。 这家公司上任不久的新CEO...

    量子位

扫码关注云+社区

领取腾讯云代金券