Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

Shift strings วงกลมซ้ายและขวาใน JavaScript


เราต้องเขียนฟังก์ชัน JavaScript ที่มีสามอาร์กิวเมนต์ อย่างแรกคือสตริง พูด str จากนั้นเรามีตัวเลขสองตัว สมมติ m และ n ตัวเลข m และ n โดยทั่วไปจะระบุจำนวนของ leftShifts และ rightShifts ตามลำดับ

เรากำหนดเงื่อนไขเหล่านี้เช่น −

กะซ้าย − การหมุนวงกลมครั้งเดียวของสตริงโดยที่อักขระตัวแรกกลายเป็นอักขระตัวสุดท้าย และอักขระอื่นๆ ทั้งหมดจะถูกเลื่อนหนึ่งดัชนีไปทางซ้าย

ตัวอย่างเช่น abcde กลายเป็น bcdea หลังจากเลื่อนไปทางซ้ายหนึ่งครั้ง และ cdeab หลังจากเลื่อนไปทางซ้ายสองครั้ง

กะขวา − การหมุนวงกลมครั้งเดียวของสตริงที่อักขระตัวสุดท้ายกลายเป็นอักขระตัวแรก และอักขระอื่นๆ ทั้งหมดจะถูกเลื่อนไปทางขวา

ตัวอย่างเช่น abcde จะกลายเป็น eabcd หลังจากเลื่อนไปทางขวาหนึ่งครั้ง และ deabc หลังจากเลื่อนไปทางขวาสองครั้ง

ดังนั้น โดยพื้นฐานแล้ว ฟังก์ชันของเราควรทำการเลื่อนซ้ายและขวาตามจำนวนที่ระบุ จากนั้นจึงส่งคืนสตริงผลลัพธ์ในที่สุด

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const str = 'abcdef';
const getShiftedString = (str, leftShifts, rightShifts) =>
shiftByAmount(shiftByAmount(str, leftShifts), −rightShifts);
// helper function
// negative amount shifts to right
// positive amount shifts to left
const shiftByAmount = (str, leftShifts) => {
   leftShifts = leftShifts % str.length;
   return str.slice(leftShifts) + str.slice(0, leftShifts);
};
console.log(getShiftedString(str, 3, 2));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

Bcdefa