Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの数式から括弧を削除する


問題

最初で唯一の引数として、数式の文字列strを受け取るJavaScript関数を作成する必要があります。

この関数のタスクは、演算とオペランドを所定の位置に保持したまま、式から括弧を削除することです。

たとえば、関数への入力が-

の場合

入力

const str = 'u-(v-w-(x+y))-z';

出力

const output = 'u-v+w+x+y-z';

以下はコードです-

const str = 'u-(v-w-(x+y))-z';
const removeParentheses = (str = '') => {
   let stack = []
   let lastSign = '+'
      for (let char of str) {
         if (char === '(' || char === ')') {
            lastSign = stack[stack.length - 1] || '+'
         } else if (char === '+') {
            if (stack[stack.length - 1] !== '-' && stack[stack.length - 1] !== '+') {
               stack.push(lastSign)
            }
         } else if (char === '-') {
            if (lastSign === '-') {
               if (stack[stack.length - 1] === '-') stack.pop()
                  stack.push('+')
         } else {
            if (stack[stack.length - 1] === '+') stack.pop()
            stack.push('-')
            }
         } else {
            stack.push(char)
      }
   }
   return stack.join('').replace(/^\+/, '')
};
console.log(removeParentheses(str));

出力

u-v+w+x+y-z

  1. Javascriptを使用して二重リンクリストから要素を削除する

    リンクリストでは、要素の削除は非常に簡単です。削除したいノードを取り除く必要があります。つまり、その参照を失います。考慮する必要がある3つのケースがあります- headから要素を削除する:この場合、head =head.nextを割り当てるだけで、次の要素から前のリンクを削除できます。このようにして、最初の要素の参照を失います。そして、頭が2番目の要素を指し始めます。 テールから要素を削除する:この場合、最後から2番目のノードのnode.nextをnullに割り当てるだけで、リストから最後の要素を削除できます。また、現在のノードを指すようにテールを更新します。 中間から要素を削除する:これ

  2. JavaScriptの外部関数の内側からリスナーを削除しますか?

    外部関数からリスナーを削除するには、removeEventListener()を使用します。 例 以下はコードです- <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title>