这题是一道思维题,做法简单来说就是统计1 、0出现的次数,如果1或0是唯一的,并且刚好从该位置开始,那么一定不能形成回文,输出N,其他情况直接输出Y

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

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n, m;
        cin >> n >> m;
        vector<string> s(n, string(m, '0')); 

        int a[50] = {}; //猜猜为什么开50,因为0,1的ASC码是48和49,注意了,i里面的全是字符,所以如果此时是‘1’,其实就是a[49]++;

        for (auto &i : s) {
            cin >> i;
            for (auto &j : i) {
                a[j]++;  
            }
        }

        for (auto &i : s) {
            for (auto &j : i) {
                cout << "YN"[a[j] == 1];  
            }
            cout << '\n'; 
        }
    }
    return 0;
}

这个写法是我学习了验题人的,我觉得她写的很好,auto很方便,包括"YN"[]这种神奇的东西也是第一次见