Computer >> Máy Tính >  >> Lập trình >> Javascript

Một chuỗi có thể được lặp lại để tạo thành chuỗi khác trong JavaScript không

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript có hai chuỗi, str1 và str2, làm đối số đầu tiên và thứ hai.

Hàm của chúng ta sẽ trả về số lần tối thiểu mà chúng ta nên lặp lại chuỗi str1 để chuỗi str2 là một chuỗi con của nó. Nếu không thể cho str2 là một chuỗi con của a sau khi lặp lại nó, chúng ta nên trả về -1

Ví dụ:nếu đầu vào của hàm là

Đầu vào

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

Đầu ra

const output = 3;

Giải thích đầu ra

Chúng tôi trả về 3 vì bằng cách lặp lại ba lần "abcdabcdabcd", b là một chuỗi con của nó.

Ví dụ

Sau đây là mã -

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));

Đầu ra

3