sy_whwh @ 2020-06-18 22:35:17
#include<iostream>
#include<string>
using namespace std;
int main ()
{
int a[201]={0},b[1];
int ta=0,ts=0,m,k,n;
string s1;
getline (cin,s1);
n=s1.length();
k=0;
for (int i=0;i<n;i++)
{
if (s1[i]-48==k)
ts++;
else
{
a[ta]=ts;
ta++;
ts=1;
k=1-k;
}
}
n--;
while (n)
{
getline (cin,s1);
for (int i=0;i<s1.length();i++)
{
if (s1[i]-48==k)
ts++;
else
{
a[ta]=ts;
ta++;
ts=1;
k=1-k;
}
}
n--;
}
a[ta]=ts;
cout<<s1.length()<<" ";
for (int i=0;i<=ta;i++)
cout<<a[i]<<" ";
}
输入: 11111 00100 11111 00100 11111 输出:5 0 5 2 1 2 5 2 1 2 5 本机DEV测试没有问题,但是测试为0分.不知如何修改,请大家看看.谢谢
by _5011_ @ 2020-06-18 22:37:06
这个 b[1] 用意何在
by monstersqwq @ 2020-06-19 08:20:36
@Zephyr_ 可以当一个变量使
by ihesro @ 2020-06-26 23:17:07
@sy_whwh
最后不要多输出空格。
by ihesro @ 2020-06-26 23:17:50
@sy_whwh
附上我的代码。
#include <bits/stdc++.h>
using namespace std;
int main(){
string s[200];cin>>s[0];int n=s[0].size();char cur='0';int sum=0;for(int i=1;i<n;i++)cin>>s[i];
cout<<n<<' ';
for(int i=0;i<n;i++)for(int j=0;j<n;j++)if(s[i][j]==cur){
sum++;
}else{
cout<<sum<<' ';
sum=1;
cur=s[i][j];
}
cout<<sum;
return 0;
}
by rainmanh @ 2020-06-29 00:54:25
用cin能过,cin.getline不能过,不知道什么原因
by sy_whwh @ 2020-07-03 20:47:33
谢谢大家的帮助。