Differences between revisions 1 and 125 (spanning 124 versions)
Revision 1 as of 2004-08-03 09:02:09
Size: 1519
Editor: anonymous
Comment: missing edit-log entry for this revision
Revision 125 as of 2005-04-02 06:33:57
Size: 1627
Editor: lihan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
##language:en
#pragma section-numbers off
{{{
#!cplusplus

#include<stdio.h>
#include<string.h>
typedef struct
{ char ch[50];
   int len;
}SqString;
int creat_string(SqString s1,SqString s2,SqString s);
int check(int a[50][50]);
Line 5: Line 14:
void main()
{ int i=0;
   SqString s,s1,s2;
   scanf("%s",&s1.ch);
   s1.len=strlen(s1.ch);
   scanf("%s",&s2.ch);
   s2.len=strlen(s2.ch);
   for(i=0;i<10;i++){
Line 6: Line 23:
= MoinMoin Wiki =    s.ch[i]='*';
 s.len++;
   }
   creat_string(s1,s2,s);
   return ;
}
int creat_string(SqString s1,SqString s2,SqString &s)
{ int i,j,k,m,n,t=0;
   int a[50][50];
   int b[50][50];
   for(i=0;i<50;i++)
    for(j=0;j<50;j++)
           a[i][j]=b[i][j]=0;
   for(i=0;i<s1.len;i++)
    for(j=0;j<s2.len;j++)
     if(s1.ch[i]==s2.ch[j])
      a[i][j]=1;
   k=1;
   while(check(a))
   {
   for(i=0;i<s1.len;i++)
        for(j=0;j<s2.len;j++)
  {
        b[i][j]=a[i][j];
  }
   for(m=0;m<s1.len;m++)
   { while(i<s1.len&&j<s2.len)
   { if(a[i][j]==1&&a[i+k][j+k]==0)
   { a[i][j]=0;
             i=i+k+1;
    j=j+k+1;
   }
         else
   {i++;
    j++;
   }
   }
   }
   for(n=0;n<s2.len;n++)
   { while(i<s1.len&&j<s2.len)
   { if(a[i][j]==1&&a[i+k][j+k]==0)
   { a[i][j]=0;
             i=i+k+1;
    j=j+k+1;
   }
         else
   {i++;
    j++;
   }
   }
   }
   k++;
 }
 while(i<s1.len&&j<s2.len)
   if(b[i][j]==1)
    for(;t<k;t++)
    { s.ch[t]=s1.ch[i];
      i++;
    }
 printf("%s",s.ch);
 return 1;
}
int check(int a[50][50])
{ int i,j;
  for(i=0;i<50;i++)
        for(j=0;j<50;j++)
   if(a[i][j]!=0)
    return 1;
  return 0;
}
Line 8: Line 94:
A WikiWikiWeb is a collaborative hypertext environment, with an emphasis on easy access to and modification of information. This wiki can also link to InterWiki space.

MoinMoin is a Python Wiki:WikiClone, based on Wiki:PikiPiki. The name is a common German slang expression explained on the MoinMoin page. If you run a Wiki using MoinMoin, please add it to the MoinMoin:MoinMoinWikis page. Contributed code is on the MoinMoin:MacroMarket, MoinMoin:ActionMarket and MoinMoin:ParserMarket pages. For more details and further topics, see the MoinMoin page.

----
You can edit any page by pressing the link at the bottom of the page. Capitalized words joined together form a WikiName, which hyperlinks to another page. The highlighted title searches for all pages that link to the current page. Pages which do not yet exist are linked with a question mark: just follow the link and you can add a definition.

To get an overview over this site and what it contains, see the SiteNavigation page.

To learn more about what a WikiWikiWeb is, read about MoinMoin:WhyWikiWorks and the MoinMoin:WikiNature. Also, consult the MoinMoin:WikiWikiWebFaq.

----
Interesting starting points:
  * RecentChanges: see where people are currently working
  * HelpForBeginners: to get you going
  * WikiSandBox: feel free to change this page and experiment with editing
  * FindPage: search or browse the database in various ways
  * SyntaxReference
...
}}}

   1 #include<stdio.h>
   2 #include<string.h>
   3 typedef struct 
   4 {  char ch[50];
   5    int len;
   6 }SqString;
   7 int creat_string(SqString s1,SqString s2,SqString s);
   8 int check(int a[50][50]);
   9 
  10 
  11 void main()
  12 {  int i=0;
  13    SqString s,s1,s2;
  14    scanf("%s",&s1.ch);
  15    s1.len=strlen(s1.ch); 
  16    scanf("%s",&s2.ch);
  17    s2.len=strlen(s2.ch);
  18    for(i=0;i<10;i++){
  19 
  20    s.ch[i]='*';
  21         s.len++;
  22    }
  23    creat_string(s1,s2,s);
  24    return ;
  25 }
  26 int creat_string(SqString s1,SqString s2,SqString &s)
  27 {  int i,j,k,m,n,t=0;
  28    int a[50][50];
  29    int b[50][50];
  30    for(i=0;i<50;i++)
  31            for(j=0;j<50;j++)
  32            a[i][j]=b[i][j]=0;
  33    for(i=0;i<s1.len;i++)
  34            for(j=0;j<s2.len;j++)
  35                    if(s1.ch[i]==s2.ch[j])
  36                            a[i][j]=1;
  37    k=1;
  38    while(check(a))
  39    {
  40           for(i=0;i<s1.len;i++)
  41         for(j=0;j<s2.len;j++)
  42                 {
  43                b[i][j]=a[i][j];
  44                 }
  45           for(m=0;m<s1.len;m++)
  46           {   while(i<s1.len&&j<s2.len)
  47           {     if(a[i][j]==1&&a[i+k][j+k]==0)
  48           {         a[i][j]=0;
  49                     i=i+k+1;
  50                                 j=j+k+1;
  51           }
  52                 else
  53                         {i++;
  54                          j++;
  55                         }
  56           }
  57           }
  58           for(n=0;n<s2.len;n++)
  59           {   while(i<s1.len&&j<s2.len)
  60           {     if(a[i][j]==1&&a[i+k][j+k]==0)
  61           {         a[i][j]=0;
  62                     i=i+k+1;
  63                                 j=j+k+1;
  64           }
  65                 else
  66                         {i++;
  67                          j++;
  68                         }
  69           }
  70           }
  71           k++;
  72         }
  73         while(i<s1.len&&j<s2.len)
  74                         if(b[i][j]==1)
  75                                 for(;t<k;t++)
  76                                 { s.ch[t]=s1.ch[i];
  77                                   i++;
  78                                 }
  79         printf("%s",s.ch);
  80         return 1;
  81 }
  82 int check(int a[50][50])
  83 { int i,j;
  84   for(i=0;i<50;i++)
  85         for(j=0;j<50;j++)
  86                         if(a[i][j]!=0)
  87                                 return 1;
  88   return 0;
  89 }
  90 
  91 ...

FrontPage2.0 (last edited 2009-12-25 07:17:24 by localhost)