E. No Palindromes

原题链接

题解

1.判断整体是不是回文串

2.如果是,找第一个与 s1 不同的字符 si,如果 s[i+1,n] 是回文串,代表 s 一定长这样 AbAb....AbA

3.如果 A 的长度为一,或者 b 只出现一次,容易想到没有分割方法

4.不然可以 Abaaa...,...aaabAbAbA

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;

void solve()
{
    string s;
    cin>>s;

    int len=s.size();

    int flag=0;
    int it=len;
    for(int i=0;i<len;i++)
    {
        if(s[i]!=s[len-i-1]) flag=1;
        if(s[i]!=s[0])
        {
            it=min(it,i);
        }
    }
    if(flag)
    {
        cout<<"YES\n1\n"<<s<<'\n';
        return;
    }
    if(it==len)
    {
        cout<<"NO\n";
        return;
    }

    flag=0;
    for(int i=it+1;i<len;i++)
    {
        if(s[i]!=s[len-(i-it)]) flag=1;
    }
    if(flag)
    {
        cout<<"YES\n2\n"<<s.substr(0,it+1)<<" "<<s.substr(it+1)<<'\n';
    }
    else
    {
        if(it==1||2*it+1==len)
        {
            cout<<"NO\n";
        }
        else
        {
            cout<<"YES\n2\n"<<s.substr(0,it+2)<<" "<<s.substr(it+2)<<'\n';
        }
    }
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}


posted @   纯粹的  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示