Educational Codeforces Round 113(Rated for Div. 2) A. Balanced Substring

Educational Codeforces Round 113(Rated for Div. 2)的其他题解点我

A. Balanced Substring

原题链接


题目大意:

给出一个字符串,其中只包含a 和 b
让你找出任意一个区间[l,r],区间内 a的数量和b的数量相等
找不到就输出 -1 -1

思路:
数据范围很小,直接暴力就好

AC代码:

#include
#include
#include
#include
#include
#define ll long long 
using namespace std;
const int maxn = 1e4 + 7;
const ll INF_ll = 1e18;
const int INF_int = 1e9;
string x;
bool judge(int l,int r) {
	int sum1, sum2;
	sum1 = sum2 = 0;
	for (int i = l; i <= r;++i) {
		if (x[i] == 'a')sum1++;
		else sum2++;
	}
	return sum1 == sum2;
}
int main() {
	int T;
	scanf("%d", &T);
	while (T--) {
		int n;
		scanf("%d", &n);
		cin >> x;
		int flag = 0;
		for (int l = 0; l < n; ++l) {
			for (int r = l + 1; r < n; ++r) {
				if (judge(l,r)) {
					flag = 1;
					printf("%d %d\n",l + 1,r + 1);
					l = r = n;
					break;
				}
			}
		}
		if (!flag)printf("-1 -1\n");
	}
}

你可能感兴趣的:(题解,c语言,算法)