博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1035Spell checker(字符串模拟)
阅读量:4686 次
发布时间:2019-06-09

本文共 1513 字,大约阅读时间需要 5 分钟。

以前做过很类似的  四种情况分开讨论

View Code
1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 char str[10010][20],cs[10010][20]; 7 int kk[10010]; 8 int judge1(char *x,char *y) 9 { 10 int i,j,k=0; 11 for(i = 0; i < strlen(x) ; i++) 12 { 13 if(x[i]!=y[i]) 14 k++; 15 } 16 if(k>1) 17 return 0; 18 return 1; 19 } 20 int judge2(char *x,char *y) 21 { 22 int i,j=0,k=0,flag; 23 for(i = 0; i
1) 33 return 0; 34 return 1; 35 } 36 int main() 37 { 38 int i,j,k=0,g; 39 char c[20]; 40 while(cin>>str[k]) 41 { 42 if(strcmp(str[k],"#")==0) 43 break; 44 kk[k] = strlen(str[k]); 45 k++; 46 } 47 int f = 0; 48 while(cin>>c) 49 { 50 if(strcmp(c,"#")==0) 51 break; 52 int tk = strlen(c); 53 g = 0; 54 f=0; 55 for(i = 0 ; i < k ; i++) 56 { 57 if(tk==kk[i]) 58 { 59 if(strcmp(c,str[i])==0) 60 { 61 f = 1; 62 break; 63 } 64 else 65 if(judge1(c,str[i])) 66 { 67 g++; 68 strcpy(cs[g],str[i]); 69 } 70 } 71 if(tk+1==kk[i]) 72 { 73 if(judge2(c,str[i])) 74 { 75 g++; 76 strcpy(cs[g],str[i]); 77 } 78 } 79 if(tk-1==kk[i]) 80 { 81 if(judge2(str[i],c)) 82 { 83 g++; 84 strcpy(cs[g],str[i]); 85 } 86 } 87 } 88 if(f) 89 { 90 printf("%s is correct\n",c); 91 } 92 else 93 { 94 printf("%s:",c); 95 for(i = 1 ; i <= g ; i++) 96 printf(" %s",cs[i]); 97 puts(""); 98 } 99 }100 return 0;101 }

 

转载于:https://www.cnblogs.com/shangyu/archive/2012/12/14/2818611.html

你可能感兴趣的文章
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字...
查看>>
如何在VS2010中使用代码片段
查看>>
H3C 通配符掩码的应用示例
查看>>
sqlite 测试索引
查看>>
java 知识结构
查看>>
The introduction of redux
查看>>
[PAT] 1012 The Best Rank (25 分)Java
查看>>
C# chart绑定数据的方式整理
查看>>
大端模式和小端模式
查看>>
mysql灾备演练问题
查看>>
互娱3.31一面
查看>>
Jmeter九、jmeter中的函数和beanshell
查看>>
Django+xadmin 打造线上教育平台(二)登录-注册(重制)
查看>>
DevExtreme 学习应用[2]
查看>>
C++ string和int相互转换
查看>>
java解压缩zip
查看>>
Android 样式布局
查看>>
C#中小数点后保留两位小数,四舍五入的函数及使用方法(转)
查看>>
CF GYM 100703A Tea-drinking
查看>>
Servlet 与 Ajax 交互一直报status=parsererror
查看>>