酷代码 AI
菜单
服务商

C++ 求解 P1020 小核桃与删除字符串问题:双指针与枚举策略

```cpp #include <iostream> #include <string> #include <algorithm> #include <climits> using namespace std; int main() { string s; cin >> s; int n = s.length(); int minValue = INT_MAX; // 枚举所有可能的左右删除情况 for (int left = 0; left <= n; ++left) { for (int right = 0; right <= n - left; ++right) { int deletedOnes = 0; int remainingZeros = 0; // 计算删除的1的数量 for (int i = 0; i < left; ++i) { if (s[i] == '1') { ++deletedOnes; } } for (int i = n - right; i < n; ++i) { if (s[i] == '1') { ++deletedOnes; } } // 计算剩下的0的数量 for (int i = left; i < n - right; ++i) { if (s[i] == '0') { ++remainingZeros; } } // 更新最小值 minValue = min(minValue, max(deletedOnes, remainingZeros)); } } cout << minValue << endl; return 0; } ``` ######[AI问答 | 330点数解答 | 2026-02-07 18:40:10]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]