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

JavaScriptの文字列の対応する最短距離


問題

最初の引数として英語の小文字のアルファベットの文字列strを取り、2番目の引数として文字列strに存在する単一の文字charを受け取るJavaScript関数を作成する必要があります。

この関数は、文字列strの各文字について、charで指定された文字列の最も近い文字からの距離を含む配列を準備して返す必要があります。

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

入力

const str = 'somestring';
const char = 's';

出力

const output = [0, 1, 2, 1, 0, 1, 2, 3, 4, 5]

以下はコードです-

const str = 'somestring';
const char = 's';
const shortestDistance = (str = '', char = '') => {
   const res = new Array(str.length).fill(Infinity)
   let prev = Infinity
   const handleIndex = (i) => {
      if (str[i] === char) {
         prev = i
      }
      res[i] = Math.min(res[i], Math.abs(i - prev), )
   }
   for (let i = 0; i < str.length; i++) {
      handleIndex(i)
   }
   prev = Infinity
   for (let i = str.length - 1; i >= 0; i--) {
      handleIndex(i)
   }
   return res
}
console.log(shortestDistance(str, char));

出力

[ 0, 1, 2, 1, 0, 1, 2, 3, 4, 5 ]

  1. JavaScriptで文字列内のハミング距離を見つける

    ハミング距離: 同じ長さの2つの弦の間のハミング距離は、これらの弦が変化する位置の数です。 言い換えれば、これは、ある弦を別の弦に変えるために必要な変更の最小数の尺度です。ハミング距離は通常、同じ長さの弦で測定されます。 同じ長さの2つの文字列(たとえば、str1とstr2)を受け取るJavaScript関数を作成する必要があります。関数は、これらの文字列間のハミング距離を計算して返す必要があります。 例 以下はコードです- const str1 = 'Hello World'; const str2 = 'Heeyy World'; const fin

  2. マジックストリング:JavaScriptの質問

    問題 マジックストリングstrは、「1」と「2」のみで構成され、次のルールに従います- 文字列strは、文字「1」と「2」の連続する出現回数を連結すると文字列str自体が生成されるため、魔法のようです。 文字列strの最初のいくつかの要素は次のとおりです- str = "1221121221221121122……" 連続する「1」と「2」をstrでグループ化すると、-になります。 1 22 11 2 1 22 1 22 11 2 11 22 ...... 各グループでの「1」または「2」の出現は-です。 1 2 2 1 1 2 1 2