字串魔法(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
#else
freopen("in.txt", "r", stdin);
#endif
int 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;
}
相關文章
- [LeetCode-Easy]344. Reverse String-逆置字串LeetCode字串
- 魔法逝
- ACM A problem is easyACM
- 【BUUCTF】easy calc
- 【BUUCTF】Easy JavaJava
- 魔法披風
- 魔法手鍊
- Easy-Admin
- vue-easy-rendererVue
- type challenge(easy 部分)
- Prefix Flip (Easy Version)
- Catch the Mole(Easy Version)
- j-easy/easy-rules: Java簡單的規則引擎Java
- 聲音魔法課
- Easy-locust Web 版本Web
- LeetCode-EasyLeetCode
- 精讀《type challenges - easy》
- Leetcode(easy heap)LeetCode
- ES-Client-easy esclient
- iframeWin For Easy UI. 為 Easy UI 擴充套件的支援IFrame外掛UI套件
- 神奇的Cookie互通魔法Cookie
- python魔法函式Python函式
- iOS - Tips - 黑魔法iOS
- 22個CSS黑魔法CSS
- 魔法使之夜 雜談
- 什麼樣的魔法棒,能讓AI魔法師一夜成名?AI
- Java規則引擎 Easy RulesJava
- 前端魔法堂:解祕FOUC前端
- Java魔法堂:呼叫外部程式Java
- Python的魔法函式Python函式
- 【譯】canvas筆觸魔法師Canvas
- Javascript 閉包並非魔法JavaScript
- Gradle命令列黑魔法Gradle命令列
- An easy guide to object rest/spreadGUIIDEObjectREST
- windows本地安裝部署 Easy MockWindowsMock
- 搭建Easy UI開發環境UI開發環境
- 【leetcode】length of last word (easy)LeetCodeAST
- HDU4565 So Easy! (矩陣)矩陣