英文查错系统【浙江工商大学oj 测试点分析】

测试项:
第二组极其重要

acm
4
am
acmm
abm
acm
aaaaa
3
aaaa
aaaaaa
aabaa
aaabbbccc
4
aabbbccc
aaabcbccc
aaabbbccca
acaabbbccc

代码:

#include <iostream>
#include <cstring>

using namespace std;

int main(){
    string norm,a;
    int n,k;
    while(getline(cin,norm)&&norm!="END"){
        k=0;
        int lennorm=norm.length();
        cin>>n;
        cin.get();
        while(n--){
            getline(cin,a);
            int lena=a.length();
            printf("%d ",++k);
            if(a==norm)
                printf("OK!\n");
            else{
                int p=0,q=0;
                for(int i=0;;i++){
                    if(i>0&&norm[i]==norm[i-1])
                        p++;
                    else
                        p=0;
                    if(i>0&&a[i]==a[i-1])
                        q++;
                    else
                        q=0;
                    if(i>=lena&&i>=lennorm)
                        break;
                    if(a[i]!=norm[i]){
                        if(lena<lennorm){
                            printf("%d insert %c\n",i-p+1,norm[i]);
                            break;
                        }
                        else if(lena==lennorm){
                            printf("%d change %c\n",i+1,norm[i]);
                            break;
                        }
                        else{
                            printf("%d delete %c\n",i-q+1,a[i]);
                            break;
                        }
                    }
                }
            }
        }
    }


    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值