为什么我错了呢?

B4039 [GESP202409 三级] 回文拼接

wuyixuan314 @ 2025-01-11 12:32:49

B4039

我的代码:

#include<iostream>
#include<string>
#include<algorithm>
#include<string.h>
#include<cstring>
using namespace std;
bool di(string a,string b)
{if(a.length()!=b.length())return false;
    for(int i=0;i<a.length();i++)
    {
        if(a[i]!=b[i])return false;
    }
    return true;
}
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        string a;
        cin>>a;
        string a1=a;
        reverse(a1.begin(),a1.end());
        if(di(a,a1))
        {
            cout<<"Yes"<<endl;
        }else
        {
            cout<<"No"<<endl;
        }
    }
}

求助!!!!!!!


by lyh0217 @ 2025-01-11 12:42:07

@wuyixuan314

他想请你编写程序判断每个字符串是否由两个**长度至少为


by wuyixuan314 @ 2025-01-11 12:47:29

@lyh0217

ok


by wuyixuan314 @ 2025-01-11 12:50:27

@lyh0217

不过双层for循环超时啊


by lyh0217 @ 2025-01-11 12:52:30

@wuyixuan314

?您说的双层循环具体指的是?


by wuyixuan314 @ 2025-01-11 12:57:15

@lyh0217

找分割点用


by lyh0217 @ 2025-01-11 12:59:19

@wuyixuan314

1.题面中写到了且每个字符串的长度均不超过

2.我不能理解您为什么要换算法……

by wuyixuan314 @ 2025-01-11 13:02:40

@lyh0217

那不换算法怎么做?


by lyh0217 @ 2025-01-11 13:04:42

@wuyixuan314

可能您没有理解我第一条信息的意思,我的意思是如果输入的字符串长度为1,那么应该输出 No ,但是您的代码输出了 Yes


by lyh0217 @ 2025-01-11 13:06:04

@wuyixuan314

您的代码的基本思路是没问题的,只是少判断了长度为1的情况


|