20分求大佬帮调,样例输出是对的

P1320 压缩技术(续集版)

nrZZZ777 @ 2024-10-10 16:17:38

# 读取第一行字符串并去除两端空白
line = input().strip()
n = len(line)
text = line

# 继续读取剩余的n-1行字符串并连接,同时去除两端空白
for i in range(1, n):
    text += input().strip()

# 初始化变量
number = text[0]
lt_print = [n]
count = 1

# 统计连续相同字符的数量
for i in range(1, len(text)):
    if text[i] == number:
        count += 1
    else:
        number = text[i]
        lt_print.append(count)
        count = 1
lt_print.append(count)
# 输出结果
print(' '.join(map(str, lt_print)))

by HerobrinePerssonZ @ 2024-10-13 10:49:07

@nrZZZ777

代码如下,带解析

#include <bits/stdc++.h>//luogu福利
using namespace std;

char a,b='0';//注意了:一定是赋值为'0';
int n,ans[1000001],zz=1;//zz是指针的意思,我用来存储第几位

int main()
{
 while(cin>>a)
 {
    n++;
    if(a==b)
        ans[zz]++;
    else
        ans[++zz]++,//等效于:zz=zz+1;ans[zz]++
        b=a;//上面用 , 不用 ; 的原因是我没有打{ }
 }
 cout<<sqrt(n);//平方根,用到了<cmath>或者是<math.h>,也就是一行的行数
 for(int i=1 ; i<=zz ; i++)
     cout<<" "<<ans[i];
}

关注:加团


by rq_hyj @ 2024-12-08 17:07:04

bro,我跟你错得一模一样,他样例默认从零开始如:

11111

00100

11111

00100

11111

ans:5 0 5 2 1 2 5 2 1 2 5

//我只会C++所以没办法帮你调代码,见谅


|