विचार
हमने मैट्रिक्स सर्पिल पहले, और पूर्ण घुमाव, और यहां तक कि किया है विकर्ण घुमाव हैं , लेकिन नहीं, जहां तक मैं पा सकता हूं, घोंघे के घुमाव !
सांप का घूमना क्या है?
आगे और पीछे लंबी कतार के डिवाइडर की तरह डिवाइडर के साथ एक मैट्रिक्स की पंक्तियों की कल्पना करें:
+--------------+
1 2 3 4 5|
+------------ |
|10 9 8 7 6|
| +-----------+
|11 12 13 14 15|
+------------ |
20 19 18 17 16|
+--------------+
अब इन वस्तुओं को 2 से घुमाने की कल्पना करें। प्रत्येक आइटम अग्रिम, जैसे लोग एक पंक्ति में आगे बढ़ रहे हैं, और अंत में आइटम बाहर फैल जाते हैं और शुरुआत में वापस आते हैं:
+--------------+
--> 19 20 1 2 3|
+------------ |
| 8 7 6 5 4|
| +-----------+
| 9 10 11 12 13|
+------------ |
<-- 18 17 16 15 14|
+--------------+
यदि पंक्तियों की एक विषम संख्या है, तो यह दाईं ओर से बाहर निकलेगी, लेकिन फिर भी शुरुआत में लपेटेगी। उदाहरण के लिए, यहाँ एक 3 रोटेशन है:
+--------------+
1 2 3 4 5|
+------------ |
|10 9 8 7 6|
| +-----------+
|11 12 13 14 15
+--------------+
+--------------+
--> 13 14 15 1 2|
+------------ |
| 7 6 5 4 3|
| +-----------+
| 8 9 10 11 12 -->
+--------------+
एक नकारात्मक घुमाव आपको पीछे की ओर ले जाएगा। यहाँ एक -2 रोटेशन है:
+--------------+
<-- 3 4 5 6 7|
+------------ |
|12 11 10 9 8|
| +-----------+
|13 14 15 1 2 <--
+--------------+
चुनौती
आपका फ़ंक्शन या प्रोग्राम किसी भी सुविधाजनक प्रारूप में 2 इनपुट लेगा:
- एक मैट्रिक्स
- एक पूर्णांक (धनात्मक या ऋणात्मक) यह दर्शाता है कि इसे घुमाने के लिए कितने स्थान हैं।
यह लौटेगा:
- घुमाया हुआ मैट्रिक्स
टिप्पणियाँ:
- कोड गोल्फ। सबसे कम बाइट्स जीतता है।
- मैट्रिक्स को चौकोर नहीं होना चाहिए, लेकिन इसमें कम से कम 2 पंक्तियाँ और 2 कॉलम होंगे
- सकारात्मक पूर्णांक दाईं ओर पंक्ति 1 को घुमाएगा
- नकारात्मक पूर्णांक बाईं ओर पंक्ति 1 को घुमाएंगे
- आप सुविधाजनक होने पर सकारात्मक / नकारात्मक रोटेशन संख्याओं के अर्थ को उलट सकते हैं
- रोटेशन संख्या मदों की संख्या से बड़ी हो सकती है। उस मामले में, यह लपेट जाएगा। यही है, यह संख्या मॉडुलो की संख्या के बराबर होगा।
- मैट्रिक्स में केवल पूर्णांक शामिल होंगे, लेकिन इसमें दोहराव सहित कोई भी पूर्णांक हो सकता है
परीक्षण के मामलों
प्रारूप:
- मैट्रिक्स
- रोटेशन संख्या
- प्रत्याशित वापसी मूल्य
4 5
6 7
1
6 4
7 5
2 3 4 5
6 7 8 9
10 11 12 13
-3
5 9 8 7
12 11 10 6
13 2 3 4
8 8 7 7
5 5 6 6
10
5 5 8 8
6 6 7 7