![在这里插入图片描述](https://img-blog.csdnimg.cn/ab301340e0ea4ba8b86530ea80b33ae4.png)
第一次代码
#include <iostream>
using namespace std;
#include <string>
#include <unordered_map>
#include <algorithm>
int main()
{
string s = "110001101011";
cout << "字符串 s 为: ";
for (int i = 0; i < s.size(); i++) {
cout << s[i] << " ";
}
cout << endl;
int n = s.size(), count1 = 1;
vector <int> num;
for (int i = 0; i < n - 1; i++) {
if (s[i] == s[i + 1]) {
count1++;
if (i == n - 2) {
num.push_back(count1);
break;
}
}
else
{
num.push_back(count1);
count1 = 1;
}
if (i == n - 2) {
num.push_back(count1);
break;
}
}
cout << "num数组中重复数字如下: ";
for (int i = 0; i < num.size(); i++) {
cout << num[i]<<" ";
}
cout << endl;
int m = num.size(), result, count2 = 0;
for (int i = 0; i < m - 1; i++) {
num[i] >= num[i + 1] ? count2 += num[i + 1] : count2 += num[i];
}
result = count2;
cout << "结果为:" << result;
cout << endl;
system("pause");
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/d6047282bfcb4123a8f5d322f5213650.png)
第二次代码
#include <iostream>
using namespace std;
#include <string>
#include <unordered_map>
#include <algorithm>
int main()
{
string s = "110001101011";
cout << "字符串 s 为: ";
for (int i = 0; i < s.size(); i++) {
cout << s[i] << " ";
}
cout << endl;
vector<int> counts;
int ptr = 0, n = s.size();
while (ptr < n) {
char c = s[ptr];
int count = 0;
while (ptr < n && s[ptr] == c) {
++ptr;
++count;
}
counts.push_back(count);
}
cout << "counts数组中重复数字如下: ";
for (int i = 0; i < counts.size(); i++) {
cout << counts[i] << " ";
}
cout << endl;
int ans = 0;
for (int i = 1; i < counts.size(); ++i) {
ans += min(counts[i], counts[i - 1]);
}
cout << "最后结果: " << ans << endl;
system("pause");
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/8afbb290fb1840779aa04bc10355d81a.png)