یک تابع ایجاد کنید که دو پارامتر دریافت میکند:
- یک ماتریس
mat
باm
سطر وn
ستون، شامل دادههایی از هر نوع. - یک پارامتر اختیاری عدد صحیح
turns
که تعداد چرخشهای ۹۰ درجهای ساعتگرد را مشخص میکند (پیشفرض آن ۱ است).
این تابع باید یک ماتریس جدید برگرداند که عناصر آن بر اساس تعداد turns
داده شده، به صورت ساعتگرد یا پادساعتگرد چرخیدهاند.
- برای اعداد صحیح مثبت:
- ۱ چرخش = ۹۰ درجه ساعتگرد
- ۲ چرخش = ۱۸۰ درجه ساعتگرد
- ۳ چرخش = ۲۷۰ درجه ساعتگرد
- ۴ چرخش = ۳۶۰ درجه ساعتگرد (برابر با ۰ چرخش) و الی آخر.
- برای اعداد صحیح منفی:
- ۱- چرخش = ۹۰ درجه پادساعتگرد
- ۲- چرخش = ۱۸۰ درجه پادساعتگرد
- ۳- چرخش = ۲۷۰ درجه پادساعتگرد
- ۴- چرخش = ۳۶۰ درجه پادساعتگرد (برابر با ۰ چرخش) و الی آخر.
مثال
rotate_matrix([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]) ➞ [
[ 9, 5, 1],
[10, 6, 2],
[11, 7, 3],
[12, 8, 4]
]
# یک چرخش ساعتگرد.
# ستونهای چپ به راست به سطرهای پایین به بالا تبدیل میشوند.
rotate_matrix([["+", "-"], ["*", "/"]], -1) ➞ [["-", "/"], ["+", "*"]]
# یک چرخش پادساعتگرد.
# ستونهای راست به چپ به سطرهای بالا به پایین تبدیل میشوند.
rotate_matrix([[1, 2, 3], [4, 5, 6]], 4) ➞ [[1, 2, 3], [4, 5, 6]]
# یک چرخش ۳۶۰ درجه همه عناصر را به جایگاه اصلی خود برمیگرداند.
نکات
- تمام ماتریسهای داده شده (لیستهای دو بعدی) حداقل ۱ سطر و ۱ ستون خواهند داشت.
- ماتریس اصلی را تغییر ندهید، مقدار بازگشتی باید یک لیست دو بعدی جدید باشد که مقادیر آن از لیست اصلی کپی شده است.
- از هیچ کتابخانهای استفاده نکنید — چالش این است که راهحل خود را ارائه دهید.
- مطمئن شوید راهحل شما به اندازهای بهینه است که بتواند تعداد زیادی چرخش را مدیریت کند.
- باید یک مقدار پیشفرض برای پارامتر
turns
تعیین کنید.
RotateMatrix([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) ➞ [[ 9, 5, 1], [10, 6, 2], [11, 7, 3], [12, 8, 4]]
RotateMatrix([["+", "-"], ["*", "/"]], -1) ➞ [["-", "/"], ["+", "*"]]
RotateMatrix([[1, 2, 3], [4, 5, 6]], 4) ➞ [[1, 2, 3], [4, 5, 6]]
RotateMatrix([[1, 2, 3], [4, 5, 6]]) ➞ [[4,1], [5,2], [6,3]]
RotateMatrix([[1, 2, 3], [4, 5, 6]], 2) ➞ [[6,5,4], [3,2,1]]
RotateMatrix([['in','mainly','plain'], ['rain','falls','the'], ['The','Spain','on']], 4097) ➞ [['The','rain','in'], ['Spain','falls','mainly'], ['on','the','plain']]
نظرات