Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

สตริงหนึ่งสามารถทำซ้ำเพื่อสร้างสตริงอื่นใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่มีสองสตริงคือ str1 และ str2 เป็นอาร์กิวเมนต์แรกและตัวที่สอง

ฟังก์ชันของเราควรคืนค่าจำนวนครั้งขั้นต่ำที่เราควรทำซ้ำสตริง str1 เพื่อให้สตริง str2 เป็นสตริงย่อยของมัน หากเป็นไปไม่ได้ที่ str2 จะเป็นสตริงย่อยของ a หลังจากทำซ้ำ เราควรคืนค่า -1

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ

ป้อนข้อมูล

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

ผลผลิต

const output = 3;

คำอธิบายผลลัพธ์

เราคืนค่า 3 เพราะโดยการทำซ้ำ "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