首页 > 其他分享 >Nikita and string CodeForces - 877B

Nikita and string CodeForces - 877B

时间:2022-09-23 15:14:57浏览次数:48  
标签:aba ab string int Nikita 877B 空串 ba

Nikita and string CodeForces - 877B

有一个全由a和b组成的字符串,可以切成三部分。满足如下规则:

  • 第一部分只包含a或者是空串。
  • 第二部分只包含b或者是空串。
  • 第三部分只包含a或者是空串。

为了使原串符合条件,可以去掉原串中的一些字符,但不可以改变顺序。

Input

输入为一个只包含 a 和 b 的串,且长度不超过 5000。

Output

输出一个整数。整数为切完后三部分串长度的总和的最大值。
如样例1,abba 可以在不删除任何字符的情况下切成 a+bb+a,所以长度总和为 4。
如样例2,ba b可以在删除第一个字符的情况下切成 a+b+NULL,所以长度总和为 2。

Sample Input

abba
bab

Sample Output

4
2

分析

数据可以分为:空,a,b,ab,ba,aba - 五类,相互间存在依存关系,如:
a 一定是 a,ba,aba 的一部分,
b 一定是 b,ab,aba 的一部分,
ab,ba 一定是 aba 的一部分。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e6+10,INF=0x3f3f3f3f;

int main(){
// freopen("data.in", "r", stdin);
    string s;
    while(cin>>s){
        int a=0, b=0, ab=0, ba=0, aba=0;
        for(int i=0; i<s.size(); i++){
            if(s[i]=='a') a++,ba++,aba++;
            else b++, ab++;
            ab = max(ab, max(a, b));
            ba = max(ba, max(a, b));
            aba = max(aba, max(ab, ba));
        }
        cout<<aba<<endl;
    }
    return 0;
}

标签:aba,ab,string,int,Nikita,877B,空串,ba
From: https://www.cnblogs.com/hellohebin/p/16722789.html

相关文章

  • C# String和StringBuilder的区别及性能详解
    String在C#中其实是不可变的,每次操作字符串变量增加或减少时,都会重新分配内存。试想一下,如果创建一个循环10000次的字符串加减操作,每次循环都将一个字符连接到字符串,这样内......
  • Java Array、String、List的切片操作
    Array数组int[]test_int=newint[]{1,2,3,4,5};test_int=Arrays.copyOfRange(test_int,1,4);System.out.println(Arrays.toString(test_int));......
  • java String
    一、修改字符串的内容1、每个String类型的字符串都是只读的,所以需要修改字符串中的某些字符则比较困难。比如要在Strings="123";要在2之后插入一个字符串"45"那么需......
  • 你不知道的 toLocaleString() 的妙用
    前言我们都知道,toLocaleString()本身的用途是,根据本地时间把Date对象转换为字符串,返回值为字符串形式的日期和时间,如下图, 实际上,它还有一个很多人不知道的妙用,可以......
  • GEO代码分析流程 - 8. 标准流程的后续 - string + Cytoscape
    蛋白互作网络图-网页工具string输入数据:差异基因输出:一个ppi图,可以导出数据放入Cytoscape进行网络可视化制作string的输入数据load("step4output.Rdata")gene_u......
  • 把 Number 类型转为 String 类型的 3 种方法
    当你在实际项目开发中,遇到需要把Number转为Sting类型时,可以采取下面3种方法:首先定义一个变量:letnum=666;1. ES6模板字符串`${num}`2. JS隐式类型转换......
  • String 和 StringBuffer 的区别(及StringBuffer的常用方法)
    String和StringBuffer的区别(及StringBuffer的常用方法)对比StringStringBuffer对象是否可变String创建的对象是不可变的,一旦创建不可改变StringBuffer创建......
  • Error: Debug Failure. False expression: Non-string value passed to `ts.resolveTy
    错误信息:/usr/src/node_modules/.pnpm/typescript@4.8.3/node_modules/typescript/lib/typescript.js:43192ts.Debug.assert(typeoftypeReferenceDirectiveNam......
  • Polycarp Writes a String from Memory CodeForces - 1702B
    PolycarpWritesaStringfromMemoryCodeForces-1702B给定大小为n的字符串,至多每3种不同的字母分为一组,最少将字符串分为多少组?Input第一行输入数据包含一个整......
  • java中String的常用方法
    1、length()字符串的长度例:charchars[]={'a','b'.'c'};Strings=newString(chars);intlen=s.length();2、charAt()截取一个字符例:charch......