zoukankan      html  css  js  c++  java
  • Message Flood

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=1500&cid=1147

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<malloc.h>
     4 int num ;
     5 struct node
     6 {
     7     int flag;
     8     struct node *next[26];
     9 };
    10 struct node *creat()
    11 {
    12      int i;
    13      struct node *p;
    14      p=(struct node*)malloc(sizeof(struct node));
    15      p->flag=0;
    16      for(i=0;i<26;i++)
    17          p->next[i]=NULL;
    18      return p;
    19 }
    20 void insert(struct node *root, char *s)
    21 {
    22      int i;
    23      struct node *p = root ;
    24      int len=strlen(s);
    25      for(i=0;i<len;i++)
    26      {
    27          if(s[i]>='A'&&s[i]<='Z')
    28             s[i]+=32;
    29          int t = s[i] - 'a' ;
    30          if(p->next[t]==NULL)
    31          {
    32              p->next[t]= creat();
    33          }
    34          p=p->next[t];
    35      }
    36      p->flag=1;
    37 }
    38 void search(struct node *root, char *s)
    39 {
    40      int i,len;
    41      len=strlen(s);
    42      struct node *p = root ;
    43      for(i=0;i<len;i++)
    44      {
    45          if(s[i]>='A'&&s[i]<='Z')
    46             s[i]+=32;
    47          int t = s[i] - 'a' ;
    48          if(p->next[t]!=NULL)
    49           p=p->next[t];
    50      }
    51     if(p->flag)
    52     {
    53         p->flag=0;
    54         num++ ;
    55     }
    56 
    57 }
    58 void Delete(struct node *root)
    59 {
    60     int i ;
    61     struct node *p = root ;
    62     if(p)
    63     {
    64         for(i=0; i<26; i++)
    65         if(p->next[i]!=NULL)
    66         Delete(p->next[i]) ;
    67     }
    68     free(p) ;
    69     p = NULL ;
    70 }
    71 int main()
    72 {
    73      int n, m, tt;
    74      char str[26];
    75      while( scanf("%d",&n),n!=0)
    76      {
    77         struct node *root = creat() ;
    78         tt=n;
    79         num = 0 ;
    80         scanf("%d",&m);
    81         while(n--)
    82         {
    83            scanf("%s",str);
    84            insert(root, str);
    85         }
    86         while(m--)
    87         {
    88            scanf("%s",str);
    89            search(root, str);
    90         }
    91           printf("%d\n",tt-num);
    92           Delete(root) ;
    93      }
    94      return 0;
    95 }
  • 相关阅读:
    Java基础语法
    Struts2--带参数的结果集
    Struts2--Dynamic Result动态结果集
    Struts2--Global Result全局结果集
    Struts2--Result类型
    Struts2--默认Action
    Struts2--模块包含
    Struts2--访问web元素
    puppeteer 填充基础表单
    animejs 动画库
  • 原文地址:https://www.cnblogs.com/yelan/p/2918490.html
Copyright © 2011-2022 走看看