1 条题解

  • 0
    @ 2026-1-3 16:11:10

    跟前一题很像

    仔细读题:

    我们称一个长度为n的字符串是“多样的”,当且仅当没有某个字母出现次数严格大于n/2。例如,字符串 "abc" 和 "iltlml" 是多样的,而 "aab" 和 "zz" 不是。

    所以只要相邻两个字符不相同就能满足条件~

    遍历字符串,满足相邻两个字母不相同就输出YES。再换行把相邻两个字母输出; 若遍历完整个数组没有符合条件的,就说明整个字符串中每个字符相同,则不存在多样的子串,就输出NO

    So代码如下:

    
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int t;
        bool ok=1;
        cin>>t;
        string s;
        cin>>s;
        for(int i=0;i<s.size()-1;i++){
            if(s[i]!=s[i+1]&&ok){
                cout<<"YES"<<endl<<s[i]<<s[i+1];
                ok=0;
            }
        }
        if(ok)cout<<"NO";
    }
    
    
    • 1

    信息

    ID
    45
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    (无)
    递交数
    26
    已通过
    14
    上传者