Size: 1519
Comment: missing edit-log entry for this revision
|
Size: 1627
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 ...