题解 | #二维数组操作#
二维数组操作
https://www.nowcoder.com/practice/2f8c17bec47e416897ce4b9aa560b7f4
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
interface OperationData {
m: number;
n: number;
x1: number;
y1: number;
x2: number;
y2: number;
addX: number;
addY: number;
x: number;
y: number;
}
const lines: Array<number>[] = [];
rl.on("line", function (line) {
lines.push(line.split(" ").map((item) => parseInt(item)));
});
rl.on("close", () => {
const operationDatas = getOperationDatas();
isLegalOperations(operationDatas);
});
// 获取操作数据
const getOperationDatas = () => {
const t = lines.length / 5;
const operationDatas: OperationData[] = [];
for (let i = 0; i < t; i++) {
const baseIndex = i * 5;
const operationDataItem = {
m: lines[baseIndex][0],
n: lines[baseIndex][1],
x1: lines[baseIndex + 1][0],
y1: lines[baseIndex + 1][1],
x2: lines[baseIndex + 1][2],
y2: lines[baseIndex + 1][3],
addX: lines[baseIndex + 2][0],
addY: lines[baseIndex + 3][0],
x: lines[baseIndex + 4][0],
y: lines[baseIndex + 4][1],
};
operationDatas.push(operationDataItem);
}
return operationDatas;
};
// 判断操作是否合法-单个
const isLegalOperation = (operationData: OperationData) => {
const { m, n, x1, y1, x2, y2, addX, addY, x, y } = operationData;
// 1.初始化表格是否成功,若成功则返回0, 否则返回-1
const init = m <= 9 && n <= 9;
getLegalResult(init);
// 2 输出交换单元格是否成功
const changeVal = x1 <= m - 1 && x2 <= m - 1 && y1 <= n - 1 && y2 <= n - 1;
getLegalResult(changeVal);
// 3 输出插入行是否成功
const addRow = addX <= m - 1 && m < 9;
getLegalResult(addRow);
// 4 输出插入列是否成功
const addCol = addY <= n - 1 && n < 9;
getLegalResult(addCol);
// 5 输出查询单元格数据是否成功
const searchVal = x < m && y < n;
getLegalResult(searchVal);
};
// 判断操作是否合法-多组数据
const isLegalOperations = (operationData: OperationData[]) => {
for (let i = 0; i < operationData.length; i++) {
isLegalOperation(operationData[i]);
}
};
// 获取判断结果
const getLegalResult = (condition: boolean) => {
if (condition) {
console.log("0");
} else {
console.log("-1");
}
};
SHEIN希音公司福利 350人发布
查看5道真题和解析