本文主要是介绍Codeforces 385B Bear and Strings(字符串),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目连接:Codeforces 385B Bear and Strings
题目大意:给出一个字符串,问说该字符串中有多少个子串包含“bear”。
解题思路:遍历,每次找到“bear”,就用该串前面个字符数x,以及该串后面的字符数y,ans += (x+1)*(y+1)- 前一个“bear”所在位置的字符串(重复的)
#include <stdio.h>
#include <string.h>
#include <iostream>using namespace std;
typedef long long ll;const int N = 50005;int main() {char str[N];scanf("%s", str); ll x = 0, len = strlen(str), ans = 0;for (ll i = 0; i < len - 3; i++) {if (str[i] == 'b' && str[i+1] == 'e' && str[i+2] == 'a' && str[i+3] == 'r') {ans += ((i + 1) * (len - i - 3) - x * (len - i - 3));x = i + 1;}}cout << ans << endl;return 0;
}
这篇关于Codeforces 385B Bear and Strings(字符串)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!