请各位dl看看哪里有错,附带思路

P1320 压缩技术(续集版)

lyrzs @ 2021-03-16 20:08:52

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int cnt=1;
    string s,t="";
    //s用来输入,t把输入拼成一行 
    cin>>s;
    t+=s;
    int n=s.size();//输出n 
    cout<<n;
    for(int i=2;i<=n;i++)
    //将剩下未输入的输入 
    {
        cin>>s;
        t+=s;//将输入的s拼接到t的后面 
    }
    t=t+'@';
    //将t的最后加上一个不是0也不是1的字符,这样可以避免最后一个cnt不输出 
    for(int i=1;i<t.size();i++)
    //将t遍历一遍,这样就变成求连号了 
    {
        if(t[i]!=t[i-1])
        {
            cout<<cnt<<" ";
            cnt=1;
        }
        else
        {
            cnt++;
        }
    }
    return 0;
}

请问哪里出错了?全WA


by lyrzs @ 2021-03-16 20:38:58

各位dl看看吧


by vectorli1 @ 2021-03-16 20:52:39

改成:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int cnt=1;
    string s,t="";
    //s用来输入,t把输入拼成一行 
    cin>>s;
    t+=s;
    int n=s.size();//输出n 
    cout<<n<<' ';
    for(int i=2;i<=n;i++)
    //将剩下未输入的输入 
    {
        cin>>s;
        t+=s;//将输入的s拼接到t的后面 
    }
    t=t+'@';
    //将t的最后加上一个不是0也不是1的字符,这样可以避免最后一个cnt不输出 
    for(int i=1;i<t.size();i++)
    //将t遍历一遍,这样就变成求连号了 
    {
        if(t[i]!=t[i-1])
        {
            cout<<cnt<<" ";
            cnt=1;
        }
        else
        {
            cnt++;
        }
    }
    return 0;
}

by vectorli1 @ 2021-03-16 20:52:59

少打了一个空格


by lyrzs @ 2021-03-16 20:56:17

@VecTorLi 只能过两个点


by vectorli1 @ 2021-03-16 21:25:35

如果第一行的第一个字符是1,则需要多打一个0


by lyrzs @ 2021-03-17 18:05:02

@VecTorLi ?


|