1 条题解
-
0
由于到最后一个字符还要判断比较麻烦,直接在过程中更新最大值并存储,用 >= 则能取到右边最长 1 串
#include <bits/stdc++.h> using namespace std; void solve() { int n; cin >> n; string s; cin >> s; int res = 0, tmp = 0, l = 0, r = 0; for (int i = 0; i < n; ++i) { if (s[i] == '1') { tmp++; } else { tmp = 0; } if (tmp >= res) { res = tmp; r = i + 1; l = r - tmp + 1; } } cout << l << ' ' << r << ' ' << res << '\n'; } int main() { int t; cin >> t; while (t--) { solve(); } return 0; }
- 1
信息
- ID
- 235
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 99
- 已通过
- 22
- 上传者