为何本机是对的,但过不了

P1320 压缩技术(续集版)

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

谢谢大家的帮助。


|