ইন্টারলেসড রোটেশন


25

চ্যালেঞ্জ

অক্ষরের একটি বর্গ ম্যাট্রিক্স দেওয়া (একক বাইট মুদ্রণযোগ্য ASCII অক্ষর), ম্যাট্রিক্সের প্রতিটি "রিং" বিপরীত দিকগুলিতে ঘোরান।

একটি উদাহরণ নেওয়া যাক:

1 2 3 4 5
6 7 8 9 A
B C D E F
G H I J K
L M N O P

তারপরে, বহিরাগততম রিংটি 90 ডিগ্রি ঘড়ির কাঁটার দিকে ঘোরানো হয়:

1 2 3 4 5    L G B 6 1
6       A    M       2
B       F => N       3
G       K    O       4
L M N O P    P K F A 5

দ্বিতীয় রিংটি 90 ডিগ্রি ঘড়ির কাঁটার বিপরীতে ঘোরানো হয়:

7 8 9    9 E J
C   E => 8   I
H I J    7 C H

চূড়ান্ত রিংটি 90 ডিগ্রি ঘড়ির কাঁটার দিকে ঘোরানো হয়, তবে এটি যেহেতু এটি একটি একক সংখ্যা (আমাদের উদাহরণের অক্ষর), তাই এটি সত্যিই প্রভাবিত হয় না।

চূড়ান্ত ফলাফল:

L G B 6 1
M 9 E J 2
N 8 D I 3
O 7 C H 4
P K F A 5

যদি ম্যাট্রিক্সের সমান পাশের দৈর্ঘ্য থাকে তবে অন্তঃতমতম রিংটি 2x2 বর্গ হবে এবং এখনও ঘোরানো উচিত।

ইনপুট

যে কোনও যুক্তিসঙ্গত মান বিন্যাসে তালিকার একটি তালিকা। উদাহরণস্বরূপ, একটি নতুন লাইন-বিস্মৃত স্থান-বিস্মৃত স্ট্রিং বা স্থান-সীমানাযুক্ত স্ট্রিংগুলির একটি তালিকা গ্রহণযোগ্য, তবে ম্যাট্রিক্সের চারপাশে রিং হিসাবে মানগুলির একটি তালিকা গ্রহণযোগ্য নয়। চরিত্রগুলি অগত্যা অনন্য নয়।

আউটপুট

যে কোনও যুক্তিসঙ্গত মান বিন্যাসে তালিকার একটি তালিকা। ইনপুট হিসাবে একই নিয়ম।

পরীক্ষার মামলা

1 2 3    7 4 1
4 5 6 => 8 5 2
7 8 9    9 6 3

1 2 3 4 5 6    Y S M G A 1
A B C D E F    Z E K Q W 2
G H I J K L => ! D O I V 3
M N O P Q R    @ C P J U 4
S T U V W X    # B H N T 5
Y Z ! @ # $    $ X R L F 6

ক্রেডিট

প্রচুরভাবে সম্পর্কিত চ্যালেঞ্জ দ্বারা অনুপ্রাণিত যা প্রতিটি উপাদানকে ঘড়ির কাঁটার বিপরীতে একটি অবস্থান (90 ডিগ্রি দ্বারা নয়) ঘোরায়।



@ rahnema1 ঠিক আছে, আমি পোস্টটি মনে আছে। এই পোস্টটি বেশিরভাগই সেই দ্বারা অনুপ্রাণিত; আমি ক্রেডিট করব। ধন্যবাদ!
হাইপারনিউটারিনো

@ মিঃ এক্সকোডার ওফস। আপনি ঠিক বলেছেন, ধন্যবাদ।
হাইপারনিউটারিনো

@ হাইপারনিট্রিনো কি আমরা ইনপুটটির অংশ হিসাবে ম্যাট্রিক্সের মাত্রা নিতে পারি?
উরিল

আপনার উদাহরণগুলিতে সমস্ত অক্ষর অনন্য। সবসময় কি এমন হবে?
ডেনিস

উত্তর:


9

হাস্কেল , 94 বাইট

একটি বেনামি ফাংশন এসগুলির একটি তালিকা গ্রহণ এবং ফিরিয়ে দেওয়া String

হিসাবে ব্যবহার করুন (cycle[t.r,r.t,r.t,r.t]?)["123", "456", "789"]

(cycle[t.r,r.t,r.t,r.t]?)
(g:h)?(a:b)=g$a:h?t(r b)
_?a=a
r=reverse;t=zipWith(:)`foldr`repeat[]

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

  • rহয় reversetআমদানির চেয়ে এক বাইট কম Data.List.transposet.rতালিকার একটি তালিকা 90 ডিগ্রি ঘড়ির কাঁটার দিকে r.tঘোরায় এবং এটিকে ঘড়ির কাঁটার বিপরীতে ঘোরান।
  • অপারেটর ?দুটি আর্গুমেন্ট, ফাংশনগুলির একটি তালিকা এবং স্ট্রিংগুলির তালিকা হিসাবে একটি ম্যাট্রিক্স গ্রহণ করে।
    • একটি খালি ম্যাট্রিক্স সবেমাত্র ফিরে এসেছে।
    • অন্যথায়, ?ফাংশনগুলির fতালিকা থেকে প্রথম ফাংশন এবং aম্যাট্রিক্সের প্রথম লাইনটি সরিয়ে দেয়।
    • তারপরে এটি bম্যাট্রিক্সের বাকী অংশটি ঘড়ির কাঁটার দিকে ঘুরিয়ে দেয় এবং এটি এবং বাকী ফাংশনগুলির সাথে পুনরাবৃত্তি করে। এটি ধীরে ধীরে বাইরে থেকে ম্যাট্রিক্সকে ভিতরে নিয়ে যায়, প্রতি চারটি ধাপে একটি করে রিং দেয়।
    • তারপরে এটি aফলাফলের মূল লাইনটি পুনরায় fসংশোধন করে এবং ম্যাট্রিক্সের অরিয়েন্টেশনটি সামঞ্জস্য করতে এতে ফাংশনটি প্রয়োগ করে ।
  • বেনাম ফাংশন ?ইনপুট ম্যাট্রিক্সের সাথে স্ট্রিংগুলির একটি তালিকা এবং ফাংশনগুলির একটি অসীম তালিকা হিসাবে কল করে, যা প্রতি চার ধাপে চক্রাকারে পুনরাবৃত্তি করে।
    • বেশিরভাগ পদক্ষেপের জন্য ফাংশনটি ঘড়ির কাঁটার বিপরীতে ঘূর্ণন হয়, যা ?পুনরাবৃত্তি করার সময় সম্পন্ন অন্তর্নিহিত ঘড়ির কাঁটার ঘূর্ণন পূর্বাবস্থায় ফিরে আসে।
    • যাইহোক, প্রথম পদক্ষেপ এবং পরে প্রতি চতুর্থ ধাপটি পরিবর্তে ঘড়ির কাঁটার ঘোরানো is
      • এই ফাংশনটি প্রয়োগ করা হয় যখন ম্যাট্রিক্সের একটি রিং সম্পূর্ণ হয়, যার ফলে প্রতিটি রিং পরবর্তী ডিগ্রিটির সাথে 180 ডিগ্রি ঘোরানো হয়।
      • ভাগ্যক্রমে, চূড়ান্ত ফলাফল পেতে চূড়ান্ত, সমাপ্ত ম্যাট্রিক্স প্রয়োগ করার জন্য এটিও সঠিক রূপান্তর।

6

পাইথন 2 , 104 বাইট

def f(x):l=len(x)-1;r=range(l+1);return[[[x[l-i][j],x[i][l-j]][min(i,j,l-i,l-j)%2]for i in r]for j in r]

এটি অনলাইন চেষ্টা করুন!

x[l-i][j]x[i][l-j]একটি পাল্টা পাল্টানোর জন্য ঘড়ির কাঁটার মোড়ের স্থানাঙ্ক । min(i,j,l-i,l-j)%2সঠিক দিক বাছাই করতে ব্যবহৃত হয়


পুনরাবৃত্তি পুনরাবৃত্তি ফিরে।
tuskiomi

@ টসকিওমি হুম ??
রড

@ টসকিওমি আমি ইএস 6-এ পুনরাবৃত্ত পদ্ধতির চেষ্টা করেছি। এই উত্তরের সরল বন্দর হিসাবে এটি প্রায় দ্বিগুণ ছিল ...
নীল

4

গণিত, 113 বাইট

r=Reverse;(l=Length[s=#];Table[s[[i+1;;l-i,i+1;;l-i]]=r/@r@s[[i+1;;l-i,i+1;;l-i]],{i,⌊l/2⌋}];r/@Transpose@s)&


E, I এর মতো বিশেষ অক্ষরের জন্য "E" এর মতো চর স্ট্রিং হিসাবে ইনপুট করা ভাল ...

ইনপুট

[{{1, 2, 3, 4, 5, 6}, {এ, বি, সি, ডি, "ই", এফ}, {জি, এইচ, "আই", জে, কে, এল}, {এম , এন, ও, পি, কিউ, আর}, {এস, টি, ইউ, ভি, ডাব্লু, এক্স}, {ওয়াই, জেড, "!", "@", "#", "ও"}}]

আউটপুট

{{Y, S, M, G, A, 1}, {Z, "E", K, Q, W, 2}, {"!", D, O, "I", V, 3}, { "@", সি, পি, জে, ইউ, ৪}, {"#", বি, এইচ, এন, টি, ৫}, {"&", এক্স, আর, এল, এফ,}}


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.