ปัญหา
เราต้องออกแบบโครงสร้างข้อมูล (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