JavaScript 字符串中对应的最短距离

问题

我们需要编写一个 JavaScript 函数,该函数接受一串英文小写字母 str 作为第一个参数,以及一个存在于字符串 str 中的单个字符 char 作为第二个参数。

我们的函数应该准备并返回一个数组,对于字符串 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 ]

以上是 JavaScript 字符串中对应的最短距离 的全部内容, 来源链接: utcz.com/z/360088.html

回到顶部