ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้สตริง str ซึ่งประกอบด้วยตัวอักษรและอักขระพิเศษบางตัว
ฟังก์ชันของเราควรส่งคืนสตริงใหม่โดยยึดตามสตริงอินพุตที่อักขระทั้งหมดที่ไม่ใช่ตัวอักษรอยู่ในตำแหน่งเดียวกัน และตัวอักษรทั้งหมดกลับตำแหน่ง
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ
ป้อนข้อมูล
const str = 'k_lmn_opq';
ผลผลิต
const output = 'q_pon_mlk';
ตัวอย่าง
const str = 'k_lmn_opq';
const reverseAlphabets = (str) => {
const arr = str.split('')
let left = 0
let right = arr.length - 1
const swap = (a, b) => {
const temp = arr[a]
arr[a] = arr[b]
arr[b] = temp
}
const isLetter = (x = '') => /[a-zA-Z]/.test(x)
while (left <= right) {
while (!isLetter(arr[left])) {
left += 1
if (left > right) {
break
}
}
while (!isLetter(arr[right])) {
right -= 1
if (left > right) {
break
}
}
if (left > right) {
break
}
swap(left, right)
left += 1
right -= 1
}
return arr.join('')
};
console.log(reverseAlphabets(str)); ผลลัพธ์
q_pon_mlk