const memberRegex = /[+-]?[\w\d^]+/g;
const varRegex = /[a-zA-Z]/;
const getMembers = (polynom) => polynom.match(memberRegex) || [polynom];
const getCoeff = (mem) => parseInt(mem) || (mem[0] === "-" ? -1 : 1) || 1;
const getVar = (str) => str.match(varRegex);
const getDegree = (member) => {
const units = member.split("^");
return !isNaN(member) ? 0 : units[1] ? +units[1] : 1;
};
const peelSpaces = (str) => str.replaceAll(" ", "");
const sortByPow = ([pow1], [pow2]) => pow2 - pow1;
const sign = (c) => (c === -1 ? "-" : c === 1 ? "" : c);
function polynomialProduct(polynom1, polynom2) {
if (polynom1 === "1") return polynom2;
if (polynom2 === "1") return polynom1;
if (polynom1 === "0" || polynom2 === "0") return "0";
polynom1 = peelSpaces(polynom1);
polynom2 = peelSpaces(polynom2);
const pms1 = getMembers(polynom1);
const pms2 = getMembers(polynom2);
const degs1 = pms1.map(getDegree);
const degs2 = pms2.map(getDegree);
const coeffs1 = pms1.map(getCoeff);
const coeffs2 = pms2.map(getCoeff);
const pairs1 = coeffs1.map((c1, i) => [c1, degs1[i]]);
const pairs2 = coeffs2.map((c2, i) => [c2, degs2[i]]);
pairs2.forEach((pair2) => {
const [coeff2, pow2] = pair2;
pairs1.forEach((pair1) => {
const [coeff1, pow1] = pair1;
const coeffsProduct = coeff1 * coeff2;
const powsSum = pow1 + pow2;
vault.set(
powsSum,
vault.has(powsSum) ? vault.get(powsSum) + coeffsProduct : coeffsProduct
);
});
});
const variable = getVar(polynom1 + polynom2);
const result = [...vault.entries()].sort(sortByPow).reduce((acc, pair) => {
let [deg, coeff] = pair;
if (coeff === 0) return acc;
if (acc !== "" && coeff > 0) acc += "+";
if (!deg) acc += coeff;
else {
acc += `${sign(coeff)}${variable}`;
deg > 1 && (acc += `^${deg}`);
}
return acc;
}, "");
return result;
}
Y29uc3QgbWVtYmVyUmVnZXggPSAvWystXT9bXHdcZF5dKy9nOwpjb25zdCB2YXJSZWdleCA9IC9bYS16QS1aXS87Cgpjb25zdCBnZXRNZW1iZXJzID0gKHBvbHlub20pID0+IHBvbHlub20ubWF0Y2gobWVtYmVyUmVnZXgpIHx8IFtwb2x5bm9tXTsKY29uc3QgZ2V0Q29lZmYgPSAobWVtKSA9PiBwYXJzZUludChtZW0pIHx8IChtZW1bMF0gPT09ICItIiA/IC0xIDogMSkgfHwgMTsKY29uc3QgZ2V0VmFyID0gKHN0cikgPT4gc3RyLm1hdGNoKHZhclJlZ2V4KTsKY29uc3QgZ2V0RGVncmVlID0gKG1lbWJlcikgPT4gewogIGNvbnN0IHVuaXRzID0gbWVtYmVyLnNwbGl0KCJeIik7CiAgcmV0dXJuICFpc05hTihtZW1iZXIpID8gMCA6IHVuaXRzWzFdID8gK3VuaXRzWzFdIDogMTsKfTsKCmNvbnN0IHBlZWxTcGFjZXMgPSAoc3RyKSA9PiBzdHIucmVwbGFjZUFsbCgiICIsICIiKTsKY29uc3Qgc29ydEJ5UG93ID0gKFtwb3cxXSwgW3BvdzJdKSA9PiBwb3cyIC0gcG93MTsKY29uc3Qgc2lnbiA9IChjKSA9PiAoYyA9PT0gLTEgPyAiLSIgOiBjID09PSAxID8gIiIgOiBjKTsKCmZ1bmN0aW9uIHBvbHlub21pYWxQcm9kdWN0KHBvbHlub20xLCBwb2x5bm9tMikgewogIGlmIChwb2x5bm9tMSA9PT0gIjEiKSByZXR1cm4gcG9seW5vbTI7CiAgaWYgKHBvbHlub20yID09PSAiMSIpIHJldHVybiBwb2x5bm9tMTsKICBpZiAocG9seW5vbTEgPT09ICIwIiB8fCBwb2x5bm9tMiA9PT0gIjAiKSByZXR1cm4gIjAiOwoKICBwb2x5bm9tMSA9IHBlZWxTcGFjZXMocG9seW5vbTEpOwogIHBvbHlub20yID0gcGVlbFNwYWNlcyhwb2x5bm9tMik7CgogIGNvbnN0IHBtczEgPSBnZXRNZW1iZXJzKHBvbHlub20xKTsKICBjb25zdCBwbXMyID0gZ2V0TWVtYmVycyhwb2x5bm9tMik7CiAgY29uc3QgZGVnczEgPSBwbXMxLm1hcChnZXREZWdyZWUpOwogIGNvbnN0IGRlZ3MyID0gcG1zMi5tYXAoZ2V0RGVncmVlKTsKICBjb25zdCBjb2VmZnMxID0gcG1zMS5tYXAoZ2V0Q29lZmYpOwogIGNvbnN0IGNvZWZmczIgPSBwbXMyLm1hcChnZXRDb2VmZik7CgogIGNvbnN0IHBhaXJzMSA9IGNvZWZmczEubWFwKChjMSwgaSkgPT4gW2MxLCBkZWdzMVtpXV0pOwogIGNvbnN0IHBhaXJzMiA9IGNvZWZmczIubWFwKChjMiwgaSkgPT4gW2MyLCBkZWdzMltpXV0pOwoKICBjb25zdCB2YXVsdCA9IG5ldyBNYXAoKTsKCiAgcGFpcnMyLmZvckVhY2goKHBhaXIyKSA9PiB7CiAgICBjb25zdCBbY29lZmYyLCBwb3cyXSA9IHBhaXIyOwogICAgcGFpcnMxLmZvckVhY2goKHBhaXIxKSA9PiB7CiAgICAgIGNvbnN0IFtjb2VmZjEsIHBvdzFdID0gcGFpcjE7CiAgICAgIGNvbnN0IGNvZWZmc1Byb2R1Y3QgPSBjb2VmZjEgKiBjb2VmZjI7CiAgICAgIGNvbnN0IHBvd3NTdW0gPSBwb3cxICsgcG93MjsKICAgICAgdmF1bHQuc2V0KAogICAgICAgIHBvd3NTdW0sCiAgICAgICAgdmF1bHQuaGFzKHBvd3NTdW0pID8gdmF1bHQuZ2V0KHBvd3NTdW0pICsgY29lZmZzUHJvZHVjdCA6IGNvZWZmc1Byb2R1Y3QKICAgICAgKTsKICAgIH0pOwogIH0pOwoKICBjb25zdCB2YXJpYWJsZSA9IGdldFZhcihwb2x5bm9tMSArIHBvbHlub20yKTsKICBjb25zdCByZXN1bHQgPSBbLi4udmF1bHQuZW50cmllcygpXS5zb3J0KHNvcnRCeVBvdykucmVkdWNlKChhY2MsIHBhaXIpID0+IHsKICAgIGxldCBbZGVnLCBjb2VmZl0gPSBwYWlyOwogICAgaWYgKGNvZWZmID09PSAwKSByZXR1cm4gYWNjOwogICAgaWYgKGFjYyAhPT0gIiIgJiYgY29lZmYgPiAwKSBhY2MgKz0gIisiOwogICAgaWYgKCFkZWcpIGFjYyArPSBjb2VmZjsKICAgIGVsc2UgewogICAgICBhY2MgKz0gYCR7c2lnbihjb2VmZil9JHt2YXJpYWJsZX1gOwogICAgICBkZWcgPiAxICYmIChhY2MgKz0gYF4ke2RlZ31gKTsKICAgIH0KICAgIHJldHVybiBhY2M7CiAgfSwgIiIpOwoKICByZXR1cm4gcmVzdWx0Owp9
Main.java:1: error: class, interface, or enum expected
const memberRegex = /[+-]?[\w\d^]+/g;
^
Main.java:1: error: illegal character: '\'
const memberRegex = /[+-]?[\w\d^]+/g;
^
Main.java:1: error: illegal character: '\'
const memberRegex = /[+-]?[\w\d^]+/g;
^
Main.java:2: error: class, interface, or enum expected
const varRegex = /[a-zA-Z]/;
^
Main.java:4: error: class, interface, or enum expected
const getMembers = (polynom) => polynom.match(memberRegex) || [polynom];
^
Main.java:5: error: class, interface, or enum expected
const getCoeff = (mem) => parseInt(mem) || (mem[0] === "-" ? -1 : 1) || 1;
^
Main.java:6: error: class, interface, or enum expected
const getVar = (str) => str.match(varRegex);
^
Main.java:7: error: class, interface, or enum expected
const getDegree = (member) => {
^
Main.java:9: error: class, interface, or enum expected
return !isNaN(member) ? 0 : units[1] ? +units[1] : 1;
^
Main.java:10: error: class, interface, or enum expected
};
^
Main.java:12: error: class, interface, or enum expected
const peelSpaces = (str) => str.replaceAll(" ", "");
^
Main.java:13: error: class, interface, or enum expected
const sortByPow = ([pow1], [pow2]) => pow2 - pow1;
^
Main.java:14: error: class, interface, or enum expected
const sign = (c) => (c === -1 ? "-" : c === 1 ? "" : c);
^
Main.java:16: error: class, interface, or enum expected
function polynomialProduct(polynom1, polynom2) {
^
Main.java:18: error: class, interface, or enum expected
if (polynom2 === "1") return polynom1;
^
Main.java:19: error: class, interface, or enum expected
if (polynom1 === "0" || polynom2 === "0") return "0";
^
Main.java:21: error: class, interface, or enum expected
polynom1 = peelSpaces(polynom1);
^
Main.java:22: error: class, interface, or enum expected
polynom2 = peelSpaces(polynom2);
^
Main.java:24: error: class, interface, or enum expected
const pms1 = getMembers(polynom1);
^
Main.java:25: error: class, interface, or enum expected
const pms2 = getMembers(polynom2);
^
Main.java:26: error: class, interface, or enum expected
const degs1 = pms1.map(getDegree);
^
Main.java:27: error: class, interface, or enum expected
const degs2 = pms2.map(getDegree);
^
Main.java:28: error: class, interface, or enum expected
const coeffs1 = pms1.map(getCoeff);
^
Main.java:29: error: class, interface, or enum expected
const coeffs2 = pms2.map(getCoeff);
^
Main.java:31: error: class, interface, or enum expected
const pairs1 = coeffs1.map((c1, i) => [c1, degs1[i]]);
^
Main.java:32: error: class, interface, or enum expected
const pairs2 = coeffs2.map((c2, i) => [c2, degs2[i]]);
^
Main.java:34: error: class, interface, or enum expected
const vault = new Map();
^
Main.java:36: error: class, interface, or enum expected
pairs2.forEach((pair2) => {
^
Main.java:38: error: class, interface, or enum expected
pairs1.forEach((pair1) => {
^
Main.java:40: error: class, interface, or enum expected
const coeffsProduct = coeff1 * coeff2;
^
Main.java:41: error: class, interface, or enum expected
const powsSum = pow1 + pow2;
^
Main.java:42: error: class, interface, or enum expected
vault.set(
^
Main.java:46: error: class, interface, or enum expected
});
^
Main.java:47: error: class, interface, or enum expected
});
^
Main.java:49: error: class, interface, or enum expected
const variable = getVar(polynom1 + polynom2);
^
Main.java:50: error: class, interface, or enum expected
const result = [...vault.entries()].sort(sortByPow).reduce((acc, pair) => {
^
Main.java:52: error: class, interface, or enum expected
if (coeff === 0) return acc;
^
Main.java:53: error: class, interface, or enum expected
if (acc !== "" && coeff > 0) acc += "+";
^
Main.java:54: error: class, interface, or enum expected
if (!deg) acc += coeff;
^
Main.java:55: error: class, interface, or enum expected
else {
^
Main.java:56: error: illegal character: '`'
acc += `${sign(coeff)}${variable}`;
^
Main.java:56: error: illegal character: '`'
acc += `${sign(coeff)}${variable}`;
^
Main.java:57: error: class, interface, or enum expected
deg > 1 && (acc += `^${deg}`);
^
Main.java:57: error: illegal character: '`'
deg > 1 && (acc += `^${deg}`);
^
Main.java:57: error: illegal character: '`'
deg > 1 && (acc += `^${deg}`);
^
Main.java:58: error: class, interface, or enum expected
}
^
Main.java:60: error: class, interface, or enum expected
}, "");
^
Main.java:62: error: class, interface, or enum expected
return result;
^
Main.java:63: error: class, interface, or enum expected
}
^
49 errors