กลับลำดับตัวอักษรในคำที่มีความยาวเป็นจำนวนเฉพาะ (prime length: 2, 3, 5, 7, 11, ...)
ตัวอย่าง
// Input: 'His father is an engineer by profession' // ความยาวคำ: His(3) father(6) is(2) an(2) engineer(8) by(2) profession(10) // Prime lengths: 3, 2, 2, 2 → His, is, an, by // Output: 'siH father si na engineer yb profession'
ตัวอย่างโค้ด
const str = 'His father is an engineer by profession';
const isPrime = n => {
if (n === 1) return false;
if (n === 2) return true;
for (let x = 2; x < n; x++) {
if (n % x === 0) return false;
}
return true;
};
const reverseString = str => str.split('').reverse().join('');
const reversePrime = str => {
return str.split(' ').reduce((acc, val) => {
if (isPrime(val.length)) {
acc += reverseString(val) + ' ';
} else {
acc += val + ' ';
}
return acc;
}, '').trim();
};
console.log(reversePrime(str));
ผลลัพธ์
siH father si na engineer yb profession