1 条题解

  • 1
    @ 2026-8-18 10:12:50

    题目中竟然有防AI!应该给所有题都加一下。
    但这样我就没法用AI了,呃呃呃

    题意

    给你一个字符串 ss,叫你判断该字符串是否为回文字符串。

    题解

    应该没人不会判回文字符吧

    算了,还是讲一下吧。

    其实以下内容是用来凑字数的

    回文字符串,就是从前往后和从后往前读是一样的字符串,因此,可以发现只需要判前半段和后半段(反过来)是否一致就可以了。

    难到说要用两个数组分别存前半段和后半段,再作比较?

    评:麻烦,真麻烦,太麻烦了,还一点用都没有。

    可以发现如果当前字符位置是 ii,那么 ni1n-i-1 的位置就是 ii 所对应的位置。 (nn 是字符串的长度。)

    另外我们只需要遍历到 n/2n/2 就可以了。

    然后这样就可以了。

    这么简单的题我还写这么长,是不是显得有点无聊。。。

    CodeCode

    
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        string s;
        cin>>s;
        int ans=0;
        int n=s.size();
        for(int i=0;i<n/2;i++){//注意字符串从0开始
            if(s[i]!=s[n-1-i]){
                ans++;
            }
        }
        cout<<ans;
        return 0;
    }
    
    
    • 1

    信息

    ID
    41
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    322
    已通过
    97
    上传者