poj1035 Spell checker
2024-09-25 04:14:20
这题目比较简单,把思路搞清楚就可以啦。
#include <stdio.h>
#include <string.h>
char words[+][]; int init(){
int cnt=;
while(~scanf("%s",words[cnt])){
if(strcmp("#",words[cnt])==) return cnt;
cnt++;
}
}
int judge(char a[],char b[]){
int success;
int la=strlen(a);
int lb=strlen(b);
int i,j,k;
int cnt=;
if(la==lb){
for(i=;i<la;++i)
if(a[i]!=b[i])
cnt++;
if(cnt==) return ;
} if(la==lb+)
for(i=;i<la;++i){
success=;
for(j=,k=;j<la&&k<lb;){
if(j==i){
j++;continue;
}
if(a[j]!=b[k]){
success=;
}
j++;k++;
}
if(success==) return ;
}
if(la+==lb)
for(i=;i<lb;++i){
success=;
for(j=,k=;j<la&&k<lb;){
if(k==i){
k++;continue;
}
if(a[j]!=b[k]){
success=;
}
j++;k++;
}
if(success==) return ;
}
return ;
} void done(int cnt){
char tmp[];
int i;
int success;
while(~scanf("%s",tmp)){
if(strcmp(tmp,"#")==)
return;
success=;
for(i=;i<cnt;++i){
if(strcmp(words[i],tmp)==){
printf("%s is correct\n",tmp);
success=;
break;
}
}
if(success==)
continue;
printf("%s:",tmp);
for(i=;i<cnt;++i){
if( judge(words[i],tmp)==){
printf(" %s",words[i]);
}
}
printf("\n");
}
return ;
}
int main(){
done(init());
return ;
}
最新文章
- 有向图的强连通分量的求解算法Tarjan
- 2014 UESTC暑前集训动态规划专题解题报告
- 【LeetCode OJ】Palindrome Partitioning II
- hibernate的运行流程
- Object-C在Nil上调用方法
- 关于sqfa
- android——使用自带录屏工具进行屏幕录像
- CSS 3 属性学习 —— 1. Gradient 渐变
- 转:MySql的commit和rollback
- 从零开始,使用python快速开发web站点(2)
- docker容器安全
- css媒体查询:响应式网站
- ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
- wmv12下安装centos7
- BBS+Blog项目开发
- LeetCode算法题-Balanced Binary Tree(Java实现)
- 秘密袭击 [BZOJ5250] [树形DP]
- [UE4]机器人自动寻路
- 《TCP/IP具体解释卷2:实现》笔记--ICMP:Internet控制报文协议
- UML笔记1