View Code of Problem 105

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main()
{
    int n,no,cnt;
    char str[3000];
    char sub[3000];
    while(scanf("%s",str)!=EOF&&strcmp(str,"END")!=0){
        scanf("%d",&n);
        no=1;
        for(int i=0;i<n;i++){
            scanf("%s",sub);
            if(strcmp(str,sub)==0){
                printf("%d OK!\n",no);
                no++;
            }else{
                for(int j=0;j<(strlen(sub)>strlen(str)?strlen(sub):strlen(str));j++){
                    if(str[j]!=sub[j]){
                        if(strlen(str)<strlen(sub)){
                            cnt=0;
                            for(int k=j;sub[k]==sub[j];k--){
                                cnt++;
                            }
                            printf("%d %d delete %c\n",no,j+1-cnt+1,sub[j]);
                            no++;
                            break;
                        }else if(strlen(str)==strlen(sub)){
                            printf("%d %d change %c\n",no,j+1,str[j]);
                            no++;
                            break;
                        }else{
                            cnt=0;
                            for(int k=j;str[k]==str[j];k--){
                                cnt++;
                            }
                            printf("%d %d insert %c\n",no,j+1-cnt+1,str[j]);
                            no++;
                            break;
                        }
                    }
                }
                
            }
        }
        
    }
    return 0;
}

//acmmss
//acmmmss
//abmmss
//acmms

Double click to view unformatted code.


Back to problem 105