Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การเพิ่มและค้นหาคำในโครงสร้างข้อมูลแบบกำหนดเองใน JavaScript


ปัญหา

เราต้องออกแบบโครงสร้างข้อมูล (Data Structure) ใน JavaScript ที่รองรับ 2 การดำเนินการ:

  • addWord เพิ่มคำเข้าไปใน DS (ใช้ DS ที่มีอยู่ เช่น อาร์เรย์)
  • search ค้นหาคำตามตัวอักษร หรือนิพจน์ปกติ (regex) ที่มี a-z และ "." โดย "." แทนตัวอักษรใดๆ ได้

เช่น:

addWord("sir")
addWord("car")
addWord("mad")
search("hell") === false
search(".ad") === true
search("s..") === true

ตัวอย่าง

โค้ดตัวอย่างดังนี้:

class MyData{
  constructor(){
    this.arr = [];
  };
}
MyData.prototype.addWord = function (word) {
  this.arr.push(word)
};
MyData.prototype.search = function (word) {
  let reg = new RegExp('^'+word+'$');
  return !!this.arr.find(el => reg.test(el));
};
const data = new MyData();
data.addWord('sir');
data.addWord('car');
data.addWord('mad');
console.log(data.search('hell'));
console.log(data.search('.ad'));
console.log(data.search('s..'));

ผลลัพธ์

ผลลัพธ์ในคอนโซล:

false
true
true