平衡子串
题目描述
给您一个字符串 \(s\),由 \(n\) 个字母组成,每个字母都是“ \(a\) ”或“ \(b\) ”。字符串中的字母从 \(1\) 到 \(n\) 进行编号。
\(s[l,r]\) 是从字符串的索引 \(l\) 到 \(r\) 的连续字母子字符串。
如果字符串中字母“ \(a\) ”的数量等于字母“ \(b\) ”的数量,则称为平衡字符串。例如,字符串“ \(baba\) ”和“ \(aabbab\) ”是平衡的,而字符串“ \(aaab\)”和“ \(b\) ”不是平衡的。
查找字符串 \(s\) 的任何非空平衡子字符串 \(s[l,r]\)。打印其 \(l\) 和 \(r(1≤l≤r≤n)\) 。如果没有这样的子字符串,则打印“\(−1\) \(−1\)”。
格式
输入格式
第一行包含一个整数 \(t(1≤t≤1000)\),表示测试组数。
对于每组测试数据:
第一行包含一个整数 \(n(1≤n≤200)\),字符串的长度。
第二行包含一个字符串 \(s\),由 \(n\) 个字母组成,每个字母是“ \(a\) ”或“ \(b\) ”。
输出格式
对于每组数据,打印两个整数。
如果存在一个非空的平衡子串 \(s[l,r]\),则打印 \(l~r(1≤L≤R≤n)\)。否则,请打印“ \(−1~−1\)”。
样例1
样例输入1
3
1
a
6
abbaba
9
babbabbaa
样例输出1
-1 -1
1 6
2 9
限制
时间:\(1s\) 空间:\(64M\)
对于 \(30\%\) 的数据:\(1≤T≤10\);
对于 \(100\%\) 的数据:\(1≤T≤1000\);
来源
地址:\(zloj,J2021\)域
作者:\(jialiang2509\)