链接:https://ac.nowcoder.com/acm/contest/9680/B
来源:牛客网

白浅获得了一个仅由A和B组成的字符串。他可以至多使用一次魔法来改变字符串。 魔法的定义:选择一个字典序不递增的子串, 然后使得这个子串变成字典序不递减的子串,即变成形如AAA…AAABBB…BBB这样的字符串。 他想知道,在他至多使用一次魔法后,这个字符串能够出现的最长的字典序不递减的子串的长度为多少。
输入描述:
输入第一行包含一个整数n,代表字符串的长度
接下来一行给出一个长度为n的字符串(1≤n≤200000)

输出描述:
输出一行一个正整数表示答案。
示例1
输入
6
AABBAA
输出
6
说明
选择”BBAA”的子串,使用魔法变成AABB,则整个字符串变为AAAABB,所以最长不递减子串长度为6。

#include <stdio.h>
#define max(a, b) (a > b ? a : b)
char s[1000001];
char st[11];
int down[1000001], upl[1000001], upr[1000001];
int main()
{#ifdef ONLINE_JUDGE
#elsefreopen("in.txt", "r", stdin);
#endifint i, j, n, m;int flag = 0, v = -1, l, r;int num1 = 0, num2 = 0, max1 = 0;scanf("%d", &n);fgets(st, 11, stdin);scanf("%s", s);down[0] = 1;for (i = 1; i < n; i++){if (s[i] <= s[i - 1]){down[i] = down[i - 1] + 1;}else{down[i] = 1;}}upl[0] = 1;for (i = 1; i < n; i++){if (s[i] >= s[i - 1]){upl[i] = upl[i - 1] + 1;}else{upl[i] = 1;}}upr[n - 1] = 1;for (i = n - 2; i >= 0; i--){if (s[i] <= s[i + 1]){upr[i] = upr[i + 1] + 1;}else{upr[i] = 1;}}for (i = 0; i < n; i++){l = i - down[i] + 1;r = i;if (l - 1 >= 0 && s[r] >= s[l - 1]){num1 += upl[l - 1];}if (r + 1 < n && s[l] <= s[r + 1]){num1 += upr[r + 1];}num1+=down[i];max1 = max(max1, num1);num1 = 0;}printf("%d\n", max1);return 0;
}

字符串魔法(easy)相关推荐

  1. 字符串魔法hard(前后缀与贪心)

    字符串魔法hard(前后缀与贪心) 链接:https://ac.nowcoder.com/acm/contest/9680/C 来源:牛客网 description: 白浅获得了一个仅由A和B组成的字 ...

  2. 上进的凡凡,幸运数组,字符串魔法(easy)

    上进的凡凡 code1: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = ...

  3. python supper函数_第四节: 字符串魔法功能

    1.capitalize 首字母大写 test = "alex" #首字母大写 v = test.capitalize() print(v) 结果: Alex 2.大小写转换 2. ...

  4. pythonchar中的拟合方法_Python字符串魔法方法

    isalpha()判断是否权威字母或者汉字 isdecimal()(十进制小数)    isdigit()  判断是否为数字 特殊数字 isdigit()判断更为厉害   也是判断数字  都返回Tru ...

  5. Python3字符串魔法(函数)

    目录 文章目录 目录 2. capitalize(self)方法 说明:将字符串首字母变大写,其余字母全部变小写 3. lower(self)方法 说明:将字符串所有字母全部变小写 4. casefo ...

  6. 字符串之单词原地逆转

    /****************************************************************************** 今天下午小奇问了我一个问题.字符串反转e ...

  7. 315道Python面试题答案

    目录 Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Python的 ...

  8. python学习第四课

    #!/user/bin/env python #-*-coding:utf-8-*- # 一.字符串魔法 # (1).isalpha()是否是字母或汉字. # 例: # a="张san22& ...

  9. Java魔法堂:深入正则表达式API

    目录 一.前言 二.正则表达式的使用诉求 三.java.util.regex包 四.java.lang.String实例 五.最短路径实现诉求 六.Java支持的正则表达式功能语法 七.总结 八.参考 ...

最新文章

  1. 【每周CV论文推荐】 掌握残差网络必读的10多篇文章
  2. cat /proc/meminfo 各字段详解
  3. h5 bootstrap 小程序模板_软件测试人员必知H5/小程序测试点
  4. 听 Fabien Potencier 谈Symfony2 之 《What is Symfony2 ?》
  5. 一位Oracle老司机的openGauss初体验
  6. HTML静态网页--JavaScript-语法
  7. 航迹推演(Odometry)_由左右轮速度v_l,v_r推导车辆的线速度v,角速度w,运动半径r
  8. python 随机密码生成_python生成随机密码,包含大小写和数字
  9. 可解释ai_人工智能解释
  10. linux设计引物探针,如何设计荧光定量PCR的引物及TaqMan探针
  11. 关于java中的httpsession_JavaWeb——HttpSession
  12. 谷歌搜索技巧大全,google高级搜索语法指令怎么用
  13. matlab直方图拉伸、均衡化和匹配
  14. wordpress企业站模板
  15. 知识产权-软考知识点-3
  16. 如何将自己喜欢的图片设置为文件图标
  17. 前有莫雷,今有清华学霸要求公开华人程序员自杀真相,被Facebook开除了
  18. linux系统下深度学习环境搭建和使用
  19. 分享|2023年全球市场准入认证咨讯
  20. 90后创业:2012教会我的那些事

热门文章

  1. Leetcode 1:两数之和
  2. windows操作系统当中常用的DOS命令
  3. CES 2018:BO扬声器将添加谷歌助手进行语音控制
  4. 数据分析的求职前景,你关心的问题都在这!
  5. 如何根据负载选择开关电源规格?
  6. Java的基础语法(基础语法大全)
  7. 走楼梯(无需担忧N的数值太大)
  8. 顶层设计理论和方法概述
  9. 华大HC32L110低电压触发捕获中断记要
  10. 路由策略和策略路由配置与管理-1