求助,用c++getline写的,本地IDE能过但是提交后全部WA

P1320 压缩技术(续集版)

isItTrue @ 2021-12-14 17:54:28

#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
using namespace std;
int n=1,cnt=0;
char a[205][205] = { 0 };
int b[50005] = { 0 };
int main() {
    int p = 0;
    cin.getline(a[0], 205);
    n = strlen(a[0]);
    for (int i = 1; i < n; i++) {
        cin.getline(a[i], 205);
    }

        for (int j = 0; j < n; j++)//行
        {
            for (int k = 0; k < n; k++)//列
            {
                if (k == n - 1 && a[j][k] == a[j + 1][0])
                    cnt++;
                else if (a[j][k] == a[j][k + 1])
                    cnt++;
                else
                {
                    b[p++] = cnt + 1;
                    cnt = 0;
                }
            }
        }
        cout << n<<" ";
        if ((a[0][0] - '0')) cout << "0 ";
    for (int i = 0; i < p; i++)
    {
        cout << b[i] << " ";
    }
    cout << "\n";
    return 0;
}

by ud2_ @ 2021-12-14 18:04:24

虽然和问题无关,但为什么用 std::cin.getline 而不是 std::getline


by isItTrue @ 2021-12-17 18:26:06

@ud2_ 网上看到的。 不知道有什么区别 请大佬讲解


by ud2_ @ 2021-12-17 18:35:13

前者读 C 字符串,后者读 C++ 字符串。

但无论怎么读,都要自己去除行末空白字符。


|