zoukankan      html  css  js  c++  java
  • D. AB-string

    https://codeforces.com/contest/1238/problem/D

    题目大意:统计good string的个数,good string的定义,给定的字符串中含有回文段落,

    题解:给定的字符串,一共可以分割为n*(n-1)/2个段落,然后只有类似于ABBB,BAAA,AAAB,BBBA不含回文段,其他均含回文段,所以只要统计给定的字符串中其个数,然后相减就可以了

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    void solve(){
        ll n;
        cin>>n;
        string s;
        cin>>s;
        ll ans=0;
        ll sum=0;
        for(ll i=0;i<n;i++){
            if(s[i]=='B'){
                for(ll j=i-1;j>=0;j--){
                    if(s[j]=='A') ans++;
                    else break;
                }
                for(ll j=i+1;j<n;j++){
                    if(s[j]=='A') ans++;
                    else break;
                }
            }
            if(s[i]=='A'){
                for(ll j=i-1;j>=0;j--){
                    if(s[j]=='B') ans++;
                    else break; 
                }
                for(ll j=i+1;j<n;j++){
                    if(s[j]=='B') ans++;
                    else break;
                }
            }
        }
        for(ll i=1;i<n;i++){
            if(s[i]!=s[i-1]) sum++;
        }
        ans-=sum;
        cout<<n*(n-1)/2-ans<<endl; 
    }
    int main(){
        ios::sync_with_stdio(false);
        solve();
        return 0;
    }
  • 相关阅读:
    8-JS闭包、回调实例
    7-闭包、回调
    6-JS函数(二)
    5-JS函数
    4-JS对象
    3-WebPack
    2-Babel
    1-NPM
    25-React事件处理及条件渲染
    java初始化笔记
  • 原文地址:https://www.cnblogs.com/Accepting/p/11656931.html
Copyright © 2011-2022 走看看