ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง str เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เท่านั้น
ฟังก์ชันของเราควรสร้างสตริงใหม่ตามสตริงอินพุต โดยที่อักขระแต่ละตัวในสตริงใหม่คือ '(' หากอักขระนั้นปรากฏเพียงครั้งเดียวในสตริงดั้งเดิม หรือ ')' หากอักขระนั้นปรากฏมากกว่าหนึ่งครั้งในสตริงดั้งเดิม
และเราควรละเว้นทุน
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
ป้อนข้อมูล
const str = 'Success';
ผลผลิต
const output = ')())())';
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const str = 'Success'; const mapString = (str = '') => { const mainStr = str.toLowerCase() const hash = {} let res = '' for (let char of mainStr) { hash[char] = ~~hash[char] + 1 } for (let char of mainStr) { if (hash[char] > 1) { res += ')' } else { res += '(' } } return res }; console.log(mapString(str));
ผลลัพธ์
)())())