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

JavaScriptの文字の最小削除合計


問題

英語の小文字のアルファベットの2つの文字列str1とstr2を、それぞれ最初と2番目の引数として受け取るJavaScript関数を作成する必要があります。

この関数は、削除された文字の最小のASCII合計を見つけて返し、2つの文字列を等しくすることになっています。

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

入力

 const str1 ='sea'; const str2 ='eat'; 

出力

 const output =231; 

出力の説明

「海」から「s」を削除すると、「s」(115)のASCII値が合計に追加されます。

「食べる」から「t」を削除すると、合計に116が追加されます。

最後に、両方の文字列は等しく、115 + 116=231がこれを達成するために可能な最小の合計です。

以下はコードです-

 const str1 ='sea'; const str2 ='eat'; const minimumSum =(str1 =''、str2 ='')=> {const chartCode =(s ='')=> {let code =0 for(const c of s){code + =c.charCodeAt(0)} return code} let prev =new Array(str2.length + 1).fill(0)for(let ind1 =str1.length; ind1> =0; ind1--){const current =new Array(str2.length + 1).fill(0)for(let ind2 =str2.length; ind2> =0; ind2--){if(ind1 ===str1 .length){current [ind2] =chartCode(str2.slice(ind2))} else if(ind2 ===str2.length){current [ind2] =chartCode(str1.slice(ind1))} else if(str1 [ind1] ===str2 [ind2]){current [ind2] =prev [ind2 + 1]} else {current [ind2] =Math.min(prev [ind2] +(str1 [ind1])。charCodeAt(0 )、current [ind2 + 1] +(str2 [ind2])。charCodeAt(0)、)}} prev =current} return prev [0]} console.log(minimumSum(str1、str2));  

出力

 231 

  1. JavaScript正規表現の\wと\W?

    \ w vs \ W の間には多くのバリエーションがあります \ w および\ W javascript 前者は「単語文字」の世話をします 英数字など。後者は単語以外の文字の世話をします。 &、^、%など。簡単に説明しましょう。 構文-1 new RegExp("\\w", "g"); 上記のコードは、単語文字を見つけるための構文を示しています。 javascriptで。 構文-2 new RegExp("\\W", "g"); 上記のコードは、単語以外の文字を見つけるための構文を示しています。 j

  2. JavaScriptで文字をエスケープする

    エスケープ文字は、意図したものとは別の方法で解釈できる文字です。これらの文字をそのまま印刷するには、それらの前に円記号「\」を含めます。以下はJavaScriptのエスケープ文字です- コード 結果 \ b バックスペース \ f フォームフィード \ n 改行 \ r キャリッジリターン \ t 水平タブレーター \ v 垂直タブレーター \ 一重引用符 \ 二重引用符 \\ バックスラッシュ 以下は、javaScriptでエスケープ文字のバックスラッシュを実装するコードで