B题之迷惑

寻寻觅觅寻不到

https://ac.nowcoder.com/acm/contest/11178/B

想知道 这题数据水 还是C++ string的== 做的很好,这么暴力的做法 跑起来竟然只要14ms

#include<bits/stdc++.h>
using namespace std;
string M,C;
int k;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int T;
    cin>>T;
    while(T--){
        cin>>M>>C>>k;
        int n=M.size(),m=C.size();
        if(n!=m){
            cout<<"NO\n";
            continue;
        }
        if(M==C){
            cout<<"YES\n";
            continue;
        }
        int flag=0;
        for(int i=0;i<n;++i){
            if(M.substr(i,k)==C.substr(m-k,k)&&M.substr(i+k,n-i-k)==C.substr(m-k-(n-i-k),n-i-k)){
                flag=1;
                break;
            }
            if(M[i]!=C[i]){
                flag=0;
                break;
            }
        }
        if(flag)cout<<"YES\n";
        else cout<<"NO\n";
    }

}
全部评论
1,题目数据是有点弱,应该卡这种做法的(我是hash做的,13ms) 2,由于题目中的k很小是 1 ~ 6 ,你的判断先判断的这k个是否相等,所以很快,利用了&&第一个假就不会运行第二个了,然后我稍微改动你的代码,交换判断位置(还要改一下循环条件,否则会段错误),就会大概500ms了,https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48735472 ,
点赞 回复 分享
发布于 2021-09-11 11:06

相关推荐

不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务