2AC 8WA 求助!

P1320 压缩技术(续集版)

Shy_Vector @ 2024-08-11 17:46:34

#include <iostream>
using namespace std;

int ans[40000] = {0}; // 维护输出答案

int main() {
    char ch, prev; // 一前一后用来比较字符是否被切换
    prev = getchar();
    int count = 1, ans_index = 1, N = 1;
    while ((ch = getchar()) != EOF) {
        if (ch != '0' && ch != '1') { // 换行了
            if (!ans[0]) // 边长还没有答案的时候
                ans[0] = N; // 用来输出边长
            continue;
        }
        N++; // 统计第一行边长
        if (ch != prev) { // 字符切换的时候
            prev = ch; // 更换字符
            ans[ans_index++] = count; // 将答案抄写在答题卡上
            count = 0; // 对新字符重新计数
        }
        count++; // 当前字符计数
    }
    ans[ans_index++] = count; // 答题卡最后一个空还没来得及抄上去,补上

    for (int i = 0; ans[i]; i++) {
        cout << ans[i] << ' '; // 交卷
    }
    return 0;
}

by YWHHDJSer @ 2024-08-11 18:47:04

题目中说交替输出连续0与1的长度,也就是如果开头第一个数是1,第一段连续的0的长度为0,要先输出一个0。


by YWHHDJSer @ 2024-08-11 18:47:48

@Shy_Vector 球关。


by Shy_Vector @ 2024-08-11 19:04:53

是我没审好题,多谢!


|