• poj 1035


    题意:给定一个字典 然后在给定一系列字符串  问在字典中是否能找到此字符串  或者是否存在 删除 增加 改变 一个字符 使之成为相同的字符串

    思路:暴力 模拟

    改了几遍

      1 #include<iostream>
      2 #include<cstring>
      3 #include<stdio.h>
      4 using namespace std;
      5 char map[11111][22];
      6 int main()
      7 {
      8     
      9     int f=0;
     10     int sum;
     11     int l,lm;
     12     char sm[22];
     13     int i,j,k,q;
     14     int n=0;
     15     //    string s;
     16     while(scanf("%s",map[n++])!=EOF)
     17     {
     18         l=strlen(map[n-1]);
     19         if(l==1&&map[n-1][0]=='#')
     20             break;
     21     };
     22     n--;
     23     while(scanf("%s",sm)!=EOF)
     24     {
     25         f=0;
     26         l=strlen(sm);
     27         if(l==1&&sm[0]=='#')
     28             break;
     29         for(i=0;i<n;i++)
     30         {
     31             if(strcmp(sm,map[i])==0)
     32             {
     33                 printf("%s is correct
    ",sm);
     34                 break;
     35             }
     36         }
     37         if(i<n) continue;
     38         
     39         for(i=0;i<n;i++)
     40         {
     41             lm=strlen(map[i]);
     42             sum=0;
     43             if(l==lm)//  寻找相差一个字符的
     44             {
     45                 for(j=0;j<l;j++)
     46                     if(sm[j]!=map[i][j])
     47                         sum++;
     48             }
     49             if(sum==1)
     50             {
     51                 if(f==0)
     52                 {
     53                     f=1;
     54                     printf("%s:",sm);
     55                 }
     56                 printf(" %s",map[i]);
     57             }
     58             sum=0;
     59             int q;
     60             if(lm+1==l)//字典中的字符串比匹配的字符串小一个
     61             {
     62                 for(k=0;k<l;k++)
     63                 {
     64                     for(j=0,q=0;j<l;j++)
     65                     {
     66                         if(j==k) continue;
     67                         if(sm[j]!=map[i][q])
     68                             break;
     69                         q++;
     70                     }
     71                     if(j>=l)
     72                     {
     73                         if(f==0)
     74                         {
     75                             f=1;
     76                             printf("%s:",sm);
     77                         }
     78                         printf(" %s",map[i]);
     79                         break;        
     80                     }
     81                 }
     82             }
     83             if(lm-1==l)//字典中的字符串比此个字符串大一个
     84             {
     85                 
     86                 for(k=0;k<lm;k++)
     87                 {
     88                     for(j=0,q=0;j<lm;j++)
     89                     {
     90                         if(j==k) continue;
     91                         if(map[i][j]!=sm[q])
     92                             break;
     93                         q++;
     94                     }
     95                     if(j>=lm)
     96                     {
     97                         if(f==0)
     98                         {
     99                             f=1;
    100                             printf("%s:",sm);
    101                         }
    102                         printf(" %s",map[i]);
    103                         break;        
    104                     }
    105                 }
    106             }
    107         }
    108         if(f==0)
    109         {
    110             printf("%s:
    ",sm);
    111             continue;
    112         }
    113         printf("
    ");
    114     }
    115     return 0;
    116 }
  • 相关阅读:
    Firefox地址栏样式设定
    定制Eclipse
    超简单的java爬虫
    JavaWeb--中文乱码小结
    编译原理之正则表达式转NFA
    Fedora下Eclipse/MyEclipse崩溃的解决方案
    利用Octopress在github pages上搭建个人博客
    在Eclipse中导入新浪微博SDK
    BlueMix
    云计算的三层简单理解
  • 原文地址:https://www.cnblogs.com/zhangdashuai/p/3786402.html
Copyright © 2020-2023  润新知