程式設計:1035:拼寫檢查——百鍊oj
阿新 • • 發佈:2019-02-05
#include<string.h>
#include<string>
using namespace std;
const int MAXN = 10000 + 1;
const int len_str = 100;
int main()
{
string temp, str[MAXN];
int count = 0;
while(cin>>temp)
{
if (temp[0] == '#')
break;
else
{
str[count] = temp;
count++;
}
}
while (cin>>temp)
{
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; #define N 51 #define M 10100 char a[M][N],b[N]; int lena[M]; bool f(int k,char b[]) { int lenb=strlen(b),i; int t=lena[k]-lenb; if(t==1){ for(i=0;i<lenb&&a[k][i]==b[i];i++); for(;i<lenb&&a[k][i+1]==b[i];i++); if(i==lenb) return true; else return false; } else if(t==0){ for(i=0;i<lenb&&a[k][i]==b[i];i++); for(++i;i<lenb&&a[k][i]==b[i];i++); if(i==lenb) return true; else return false; } else if(t==-1){ for(i=0;i<lenb&&a[k][i]==b[i];i++); for(++i;i<lenb&&a[k][i-1]==b[i];i++); if(i==lenb) return true; else return false; } else return false; } int main() { int cnt=0,i,j; while(scanf("%s",a[cnt])){ if(a[cnt][0]=='#') break; lena[cnt]=strlen(a[cnt]); cnt++; } while(scanf("%s",b)){ if(b[0]=='#') break; int lenb=strlen(b); for(i=0;i<cnt;i++){ if(lena[i]==lenb&&strcmp(a[i],b)==0) { printf("%s is correct\n",b); break; } } // cout<<"i="<<i<<endl; if(i==cnt){ printf("%s:",b); for(j=0;j<cnt;j++){ { if(f(j,b)) {printf(" %s",a[j]);} } } printf("\n"); } } }
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; #define N 51 #define M 10100 char a[M][N],b[N]; int lena[M]; bool f(int k,char b[]) { int lenb=strlen(b),i; int t=lena[k]-lenb; if(t==1){ for(i=0;i<lenb&&a[k][i]==b[i];i++); for(;i<lenb&&a[k][i+1]==b[i];i++); if(i==lenb) return true; else return false; } else if(t==0){ for(i=0;i<lenb&&a[k][i]==b[i];i++); for(++i;i<lenb&&a[k][i]==b[i];i++); if(i==lenb) return true; else return false; } else if(t==-1){ for(i=0;i<lenb&&a[k][i]==b[i];i++); for(++i;i<lenb&&a[k][i-1]==b[i];i++); if(i==lenb) return true; else return false; } else return false; } int main() { int cnt=0,i,j; while(scanf("%s",a[cnt])){ if(a[cnt][0]=='#') break; lena[cnt]=strlen(a[cnt]); cnt++; } while(scanf("%s",b)){ if(b[0]=='#') break; int lenb=strlen(b); for(i=0;i<cnt;i++){ if(lena[i]==lenb&&strcmp(a[i],b)==0) { printf("%s is correct\n",b); break; } } // cout<<"i="<<i<<endl; if(i==cnt){ printf("%s:",b); for(j=0;j<cnt;j++){ { if(f(j,b)) {printf(" %s",a[j]);} } } printf("\n"); } } }