第二题 int n, k; vector<int> vec; int main() { char pre,temp; string s; cin >> s >> k; n = s.size(); pre = 'n'; int count=0; int flag = true; for (int i = 0; i < n; i++) { temp=s[i]; if (pre == 'n') { pre = temp; count = 1; if (temp == '0') flag = false; continue; } if (temp != pre) { vec.push_back(count); //cout << count << endl; count = 0; } count++; pre = temp; } vec.push_back(count); //cout << count << endl; int i = 0; if (!flag) i = 1; int ans = 0; for ( ; i < vec.size(); i++) { int rest_k = k; int res = 0; for (int j = i; j < vec.size(); j++) { res += vec[j]; j++; if (j >= vec.size()) break; if (rest_k >= vec[j]) { res += vec[j]; rest_k -= vec[j]; } else { res += rest_k; rest_k = 0; break; } } if(rest_k > 0) { if (i >= 1) { res += min(vec[i - 1], rest_k); } ans = max(ans, res); break; } ans = max(ans, res); } cout << ans; }
点赞 评论

相关推荐

01-16 18:34
四川大学 Java
欢迎加入AI:没有啥稳定不稳定,一切都源于业务快速发展还是收缩。我当年一开始去的央企,业务不赚钱,也贼卷,慢慢就开始优化了。。。
点赞 评论 收藏
分享

牛客热帖

更多
牛客网
牛客企业服务