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