Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การกลับลำดับตัวอักษรในสตริงด้วย JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน 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