Vấn đề
Chúng tôi được yêu cầu thiết kế cấu trúc dữ liệu bằng JavaScript hỗ trợ hai hoạt động sau -
- addWord, thêm một từ vào Cấu trúc dữ liệu (DS) đó, chúng tôi có thể nhờ sự trợ giúp của DS hiện có như mảng hoặc bất kỳ DS nào khác để lưu trữ dữ liệu này,
- tìm kiếm, tìm kiếm một từ theo nghĩa đen hoặc một chuỗi biểu thức chính quy có chứa các chữ cái viết thường "a-z" hoặc "." ở đâu "." có thể đại diện cho bất kỳ chữ cái nào
Ví dụ
addWord("sir") addWord("car") addWord("mad") search("hell") === false search(".ad") === true search("s..") === true
Ví dụ
Sau đây là mã -
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..'));
Đầu ra
Sau đây là đầu ra của bảng điều khiển -
false true true