ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน 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)); ผลลัพธ์
)())())