fork download
  1. const memberRegex = /[+-]?[\w\d^]+/g;
  2. const varRegex = /[a-zA-Z]/;
  3.  
  4. const getMembers = (polynom) => polynom.match(memberRegex) || [polynom];
  5. const getCoeff = (mem) => parseInt(mem) || (mem[0] === "-" ? -1 : 1) || 1;
  6. const getVar = (str) => str.match(varRegex);
  7. const getDegree = (member) => {
  8. const units = member.split("^");
  9. return !isNaN(member) ? 0 : units[1] ? +units[1] : 1;
  10. };
  11.  
  12. const peelSpaces = (str) => str.replaceAll(" ", "");
  13. const sortByPow = ([pow1], [pow2]) => pow2 - pow1;
  14. const sign = (c) => (c === -1 ? "-" : c === 1 ? "" : c);
  15.  
  16. function polynomialProduct(polynom1, polynom2) {
  17. if (polynom1 === "1") return polynom2;
  18. if (polynom2 === "1") return polynom1;
  19. if (polynom1 === "0" || polynom2 === "0") return "0";
  20.  
  21. polynom1 = peelSpaces(polynom1);
  22. polynom2 = peelSpaces(polynom2);
  23.  
  24. const pms1 = getMembers(polynom1);
  25. const pms2 = getMembers(polynom2);
  26. const degs1 = pms1.map(getDegree);
  27. const degs2 = pms2.map(getDegree);
  28. const coeffs1 = pms1.map(getCoeff);
  29. const coeffs2 = pms2.map(getCoeff);
  30.  
  31. const pairs1 = coeffs1.map((c1, i) => [c1, degs1[i]]);
  32. const pairs2 = coeffs2.map((c2, i) => [c2, degs2[i]]);
  33.  
  34. const vault = new Map();
  35.  
  36. pairs2.forEach((pair2) => {
  37. const [coeff2, pow2] = pair2;
  38. pairs1.forEach((pair1) => {
  39. const [coeff1, pow1] = pair1;
  40. const coeffsProduct = coeff1 * coeff2;
  41. const powsSum = pow1 + pow2;
  42. vault.set(
  43. powsSum,
  44. vault.has(powsSum) ? vault.get(powsSum) + coeffsProduct : coeffsProduct
  45. );
  46. });
  47. });
  48.  
  49. const variable = getVar(polynom1 + polynom2);
  50. const result = [...vault.entries()].sort(sortByPow).reduce((acc, pair) => {
  51. let [deg, coeff] = pair;
  52. if (coeff === 0) return acc;
  53. if (acc !== "" && coeff > 0) acc += "+";
  54. if (!deg) acc += coeff;
  55. else {
  56. acc += `${sign(coeff)}${variable}`;
  57. deg > 1 && (acc += `^${deg}`);
  58. }
  59. return acc;
  60. }, "");
  61.  
  62. return result;
  63. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
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
stdout
Standard output is empty