পাইথ সম্ভবত সবচেয়ে সফল সাধারণ উদ্দেশ্যে গল্ফিং ভাষা ing যদিও এটি 2014 থেকে 2016 পর্যন্ত পাইথের সংক্ষিপ্ত বাক্য গঠন, ধ্রুবক আপডেট, ওভারলোডিং এবং (এর যুগের জন্য) নতুন ভাষার ফলাফল হিসাবে কিছুটা হ্রাস পাচ্ছে , বেশিরভাগ বিল্টইন এটি বেশিরভাগ প্রশ্নের কাছে প্রিয় করে তুলেছে।
পাইথ কোড পড়া প্রায়শই কঠিন। এমনকি ডিবাগ মোডের আউটপুট (ট্রান্সপ্লাইড পাইথন) প্রায়শই একটি দীর্ঘ লাইন থাকে, কখনও কখনও বন্ধনীগুলি দশ গভীরের সাথে থাকে। তবে সঠিকভাবে ফর্ম্যাট করা পাইথ খুব পঠনযোগ্য।
পাইথ ওয়ার্ড চেইনে @isaacg দ্বারা লিখিত পাইথ কোডের একটি টুকরো এখানে দেওয়া হয়েছে ।
.MlZfqhMtTeMPT+Lzs.pMyQ
এটি এর মতো আরও অনেক পাঠযোগ্য।
.M Filter by gives-maximal-value of
l Z lambda Z:length(Z) over
f filter by (lambda T:
q equal
hM t T head-map tail T
eM P T end-map Pop T)
+L Append z to each element in
z
s .pM y Q flattened permutations of each subset of Q
এই চ্যালেঞ্জের জন্য, আমরা পাইথ চরিত্রগুলিকে শ্রেণিবদ্ধকরণের কলমোগোরভ-জটিলতার দিকটি সরিয়ে ফর্ম্যাটিংয়ে ফোকাস করি। পাইথ কোড হওয়ার পরিবর্তে ইনপুটটিতে অক্ষর থাকবে 0123456789M
। অঙ্ক n
arity একটি ফাংশন প্রতিনিধিত্ব করে n
, এবং M
একটি অপারেটর প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, উপরের কোড হিসাবে প্রতিনিধিত্ব করা হয় 210221M101M102M011M10
। আনমেনিফাই করার পদক্ষেপগুলি এখানে:
টোকেনগুলিতে স্ট্রিং আলাদা করুন।
একটি টোকেন ম্যাচ [0-9]M*
। 0M
ইনপুট ঘটবে না।
চলমান 0 টি যুক্ত করুন।
যখন পর্যাপ্ত যুক্তি নেই, পাইথ Q
প্রোগ্রামের আর্গুমেন্টগুলি পূরণ করার জন্য প্রয়োজনীয় কোড হিসাবে অনেকগুলি অন্তর্নিহিত ভেরিয়েবল (ল্যাম্বদা ভেরিয়েবল বা গুলি) যুক্ত করে; এগুলি দ্বারা প্রতিনিধিত্ব করা উচিত 0
।
লাইনের মধ্যে গ্রুপ টোকেন।
একটি টোকেনের আরটিটি হল তার অঙ্কের মান।
একটি আরটি -0 টোকেন (যেমন একটি 0) একটি লাইন শেষ করে।
আরটি -১ টোকেনের জন্য পরবর্তী টোকেনটি একই লাইনে চলে উচিত, একটি স্পেস দ্বারা পৃথক করে।
একটি আধ্যাত্মিক> = 2 টোকেনের জন্য, এর আর্গুমেন্টগুলি পৃথক লাইনে চলেছে, তারা কোডটিতে প্রদর্শিত ক্রম অনুসারে প্রতিটি তাদের নিজস্ব সাব-বিভাগগুলি অনুসরণ করবে so একটি টোকেনের যুক্তিগুলি সেই টোকেন প্লাস ওয়ান স্পেসের শেষে যুক্ত হয়।
ইনপুট
একজন nonempty স্ট্রিং (অথবা গৃহস্থালি অ্যারে, দৈর্ঘ্য-1 স্ট্রিং, ইত্যাদি অ্যারে হিসাবে স্ট্যান্ডার্ড ইনপুট / আউটপুট পদ্ধতি দ্বারা অনুমতি দেওয়া হয়েছে) এর মধ্যে রয়েছে 0123456789M
, যা সাবস্ট্রিং থাকবে না 0M
।
আউটপুট
উপরের নিয়ম অনুসারে স্ট্রিংটি ফর্ম্যাট করা হয়েছে।
পরীক্ষার মামলা
210221M101M102M011M10
2
1 0
2
2
1M 1 0
1M 1 0
2M
0
1 1M 1 0
123M4M
1 2
3M
4M
0
0
0
0
0
0
0
2MM
2MM
0
0
11011100
1 1 0
1 1 1 0
0
9000000
9
0
0
0
0
0
0
0
0
0
210221M101M102M011M10
হবে[2,1,0,2,2,1,'M',1,0,1,'M',1,0,2,'M',0,1,1,'M',1,0]
M
করে।
M
?