AtCoder Beginner Contest 043
D - Unbalanced
只需要找到形如 \(XX\)、\(XYX\) 的字串即可。即两个相同字符之间最多间隔一个字符。
证明:若不然,\(AXYA\),每加一个字符 \(A\),都要增加多余字符 \(XY\),不可能符合要求。
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
string s;
cin >> s;
for (int i = 0; i < s.size() - 1; i++) {
if (s[i] == s[i + 1]) {
cout << i + 1 << " " << i + 2;
return 0;
} else if (i < s.size() - 2 && s[i] == s[i + 2]) {
cout << i + 1 << " " << i + 3;
return 0;
}
}
cout << "-1 -1";
return 0;
}

浙公网安备 33010602011771号