字符串魔法(easy)
链接: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)相关推荐
- 字符串魔法hard(前后缀与贪心)
字符串魔法hard(前后缀与贪心) 链接:https://ac.nowcoder.com/acm/contest/9680/C 来源:牛客网 description: 白浅获得了一个仅由A和B组成的字 ...
- 上进的凡凡,幸运数组,字符串魔法(easy)
上进的凡凡 code1: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = ...
- python supper函数_第四节: 字符串魔法功能
1.capitalize 首字母大写 test = "alex" #首字母大写 v = test.capitalize() print(v) 结果: Alex 2.大小写转换 2. ...
- pythonchar中的拟合方法_Python字符串魔法方法
isalpha()判断是否权威字母或者汉字 isdecimal()(十进制小数) isdigit() 判断是否为数字 特殊数字 isdigit()判断更为厉害 也是判断数字 都返回Tru ...
- Python3字符串魔法(函数)
目录 文章目录 目录 2. capitalize(self)方法 说明:将字符串首字母变大写,其余字母全部变小写 3. lower(self)方法 说明:将字符串所有字母全部变小写 4. casefo ...
- 字符串之单词原地逆转
/****************************************************************************** 今天下午小奇问了我一个问题.字符串反转e ...
- 315道Python面试题答案
目录 Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Python的 ...
- python学习第四课
#!/user/bin/env python #-*-coding:utf-8-*- # 一.字符串魔法 # (1).isalpha()是否是字母或汉字. # 例: # a="张san22& ...
- Java魔法堂:深入正则表达式API
目录 一.前言 二.正则表达式的使用诉求 三.java.util.regex包 四.java.lang.String实例 五.最短路径实现诉求 六.Java支持的正则表达式功能语法 七.总结 八.参考 ...
最新文章
- 【每周CV论文推荐】 掌握残差网络必读的10多篇文章
- cat /proc/meminfo 各字段详解
- h5 bootstrap 小程序模板_软件测试人员必知H5/小程序测试点
- 听 Fabien Potencier 谈Symfony2 之 《What is Symfony2 ?》
- 一位Oracle老司机的openGauss初体验
- HTML静态网页--JavaScript-语法
- 航迹推演(Odometry)_由左右轮速度v_l,v_r推导车辆的线速度v,角速度w,运动半径r
- python 随机密码生成_python生成随机密码,包含大小写和数字
- 可解释ai_人工智能解释
- linux设计引物探针,如何设计荧光定量PCR的引物及TaqMan探针
- 关于java中的httpsession_JavaWeb——HttpSession
- 谷歌搜索技巧大全,google高级搜索语法指令怎么用
- matlab直方图拉伸、均衡化和匹配
- wordpress企业站模板
- 知识产权-软考知识点-3
- 如何将自己喜欢的图片设置为文件图标
- 前有莫雷,今有清华学霸要求公开华人程序员自杀真相,被Facebook开除了
- linux系统下深度学习环境搭建和使用
- 分享|2023年全球市场准入认证咨讯
- 90后创业:2012教会我的那些事