dolao请避开
首先我们不知道N是多少 第一次要特别输出
后面就是暴力模拟,遍历一遍,用一个int变量在发现数字交替的时候输出,再把变量赋值为1,一开始是0,然后要注意最后一个压缩码在循环里不会输出
#include <iostream>
using namespace std;
int main(){
string a[205];//保存汉字点阵图
char c='0';//保存当前的字符是0/1,一开始题目要求是0开头
int sum=0;//保存有连续sum个字符相同
cin>>a[0];//先输入字符串是因为我们不知道N,要用a【0】.size();
for(int i=1;i<a[0].size();i++) cin>>a[i];//输入汉字点阵图
cout<<a[0].size()<<" ";//输出N
for(int i=0;i<a[0].size();i++){
for(int j=0;j<a[0].size();j++){
if(a[i][j]==c) sum++;//检测到还是连续0/1 sum++
else{//不是连续0/1
c=a[i][j];//将c更改为当前字符
cout<<sum<<" ";//输出
sum=1;//特别注意sum=1!!! 因为当前那个也算
}
}
}
cout<<sum;//将最后一个压缩码输出
return 0;
}