JavaScript 中一个字符串可以重复形成另一个字符串吗?

javascriptweb developmentfront end technology

问题

我们需要编写一个 JavaScript 函数,该函数接受两个字符串 str1 和 str2,作为第一个和第二个参数。

我们的函数应该返回重复字符串 str1 的最少次数,以使字符串 str2 成为其子字符串。如果重复 str2 后不可能成为 a 的子字符串,则应返回 -1

例如,如果函数的输入是

输入

const str1 = 'wxyz';
const str2 = 'yzwxyzwx';

输出

const output = 3;

输出说明

我们返回 3,因为通过重复 a 三次"abcdabcdabcd",b 是它的子字符串。

示例

以下是代码 −

const str1 = 'wxyz';
const str2 = 'yzwxyzwx';
const countRepeat = (str1 = '', str2) => {
   let i = 1
   let current = str1
   while (true) {
      if (current.indexOf(str2) >= 0) {
         return i
      }
      if ((current.length > str2.length * 2) && i > 2) {
         return -1
      }
      current += str1
      i += 1
   }
}
console.log(countRepeat(str1, str2));

输出

3

相关文章