棋子翻转-美团试题-带格式化输入输出

 

在4*4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。

 

输入描述:

给定两个数组,分两行

第一行为分别为初始棋盘,为4*4矩阵,其中0表示白色棋子,1表示黑色棋子

第二行为翻转位置,其中翻转位置共有3个



输出描述:
请返回翻转后的棋盘,为4*4矩阵
示例1

输入

[[0,0,1,1],[1,0,1,0],[0,1,1,0],[0,0,1,0]]
[[2,2],[3,3],[4,4]]

输出

[[0,1,1,1],[0,0,1,0],[0,1,1,0],[0,0,1,0]]

 

#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    string input;int n = 2;
    vector<vector<char>> qipan;
    vector<vector<int>> caozuo;
    vector<char> temp1;
    vector<int> temp2;
    while (n--)
    {
        getline(cin, input);
        for(int i = 0; i < input.size(); i++){
            if(n == 1){
                if(input[i] == '0' || input[i] == '1'){
                    temp1.push_back(input[i]);
                }
                if(temp1.size() == 4){
                    qipan.push_back(temp1);
                    temp1.clear();
                }
            }
            else{
                if(input[i] != '[' && input[i] != ']' && input[i] != ','){
                    temp2.push_back((int)input[i] - '0');
                }
                if(temp2.size() == 2){
                    caozuo.push_back(temp2);
                    temp2.clear();
                }
            }
        }
    }
    

    for(int i = 0; i < caozuo.size(); i++){
        int row = caozuo[i][0]-1;
        int col = caozuo[i][1]-1;
        if(0<=row-1 && row-1<=3) qipan[row-1][col] = qipan[row-1][col] == '0' ? '1' : '0';
        if(0<=row+1 && row+1<=3) qipan[row+1][col] = qipan[row+1][col] == '0' ? '1' : '0';
        if(0<=col-1 && col-1<=3) qipan[row][col-1] = qipan[row][col-1] == '0' ? '1' : '0';
        if(0<=col+1 && col+1<=3) qipan[row][col+1] = qipan[row][col+1] == '0' ? '1' : '0';
    }

    cout.put('[');
    for(int i = 0; i < qipan.size(); i++){
        cout.put('[');
        for(int j = 0; j < qipan[i].size(); j++){
            cout.put(qipan[i][j]);
            if(j != 3) cout.put(',');
        }
        cout.put(']');
        if(i != 3) cout.put(',');
    }
    cout.put(']');

    return 0;
}

 

posted @ 2020-03-18 17:48  jenningszheng  阅读(322)  评论(0编辑  收藏  举报