เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง str ที่มีเพียงอักขระ -
'(', ')', '{', '}', '[' and ']'
ฟังก์ชันของเราควรตรวจสอบว่าสตริงอินพุตถูกต้องหรือไม่
สตริงอินพุตถูกต้องหาก −
-
วงเล็บเปิดต้องปิดด้วยวงเล็บประเภทเดียวกัน
-
ต้องปิดวงเล็บเปิดในลำดับที่ถูกต้อง
ตัวอย่างเช่น −
-
"()" เป็นวงเล็บที่ถูกต้อง
-
"()[]{}" เป็นวงเล็บที่ถูกต้อง
-
"(]" เป็นวงเล็บที่ไม่ถูกต้อง
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const str = "()[]{}"; const isValid = (str = '') => { const map=new Map(); map.set('{','}'); map.set('(',')'); map.set('[',']'); const b=[]; for(let i=0;i<str.length;i++){ if(map.has(str.charAt(i))){ b.push(str.charAt(i)); } else{ let pop=b.pop(); if(map.get(pop)!==str.charAt(i)){ return false; } }; }; return b.length===0; }; console.log(isValid(str));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
true false