shCoc/NhN/zhNm>o_/zZSzdUz
এই উত্তরটি দ্বারা অনুপ্রাণিত হয়ে সমস্ত নতুন অ্যালগরিদম ব্যবহার করে ।
(implicit) z = input()
(implicit) print
s combine list of strings into one string
h first list in
C matrix transpose of (e.g. first characters in first list, etc.)
o order_by(lambda N:
c float_div(
/NhN N.count(N[0]),
/zhN z.count(N[0])),
m map(lambda d:
> slice_head(
o order_by(lambda Z:
_/zZ -1*z.count(Z),
Sz sorted(z)),
d d),
Uz range(len(z))
ধাপে ধাপে:
প্রথমে, আমরা অক্ষরগুলি তাদের সাধারণতার দ্বারা বাছাই করেছি, বর্ণানুক্রমিকভাবে ভেঙেছি। এই o_/zZSz
। o
পাইথনের মতোই sorted(<stuff>,key=<stuff>)
, কীটির জন্য ল্যাম্বডা এক্সপ্রেশন সহ এটি স্ট্রিং হিসাবে রাখে।
তারপরে আমরা সেই স্ট্রিংয়ের উপসর্গগুলির একটি তালিকা তৈরি করি, len(z)
দৈর্ঘ্য 1 থেকে দৈর্ঘ্য 1 >
পর্যন্ত পাইথনের সমতুল্য <stuff>[<int>:]
।
তারপরে, আমরা ভগ্নাংশের অবস্থান অনুসারে উপসর্গের স্ট্রিংগুলির এই তালিকাটি পুনরায় সাজিয়েছি, 0 টি বাম প্রান্ত এবং 1 টি ডান হওয়াতে, প্রশ্নের মধ্যে দেখা আয়তক্ষেত্রাকার বিন্যাসে উপসর্গের প্রথম চরিত্রের। /NhN
উপসর্গের প্রথম অক্ষরটি উপসর্গের মধ্যে কতবার ঘটে /zhN
তা গণনা করে , যখন একটি ছিদ্র হিসাবে স্ট্রিংয়ের উপসর্গের প্রথম চরিত্রের সংখ্যার সংখ্যা দেয়। এই চরিত্রের 1/k
ডান সর্বাধিক উপস্থিতি k/k
থেকে শুরু করে বামে সর্বাধিক উপস্থিতি থেকে একটি গ্রুপে প্রতিটি চরিত্রের নেতৃত্বে থাকা প্রতিটি উপসর্গকে নির্ধারণ করে । এই নম্বর দ্বারা উপসর্গ তালিকাটি পুনরায় সাজানো বিন্যাসে উপযুক্ত অবস্থান দেয়। পূর্ববর্তী ক্রমটি ব্যবহার করে বন্ধনগুলি ভেঙে দেওয়া হয়, যা প্রথমে ইচ্ছামতো বর্ণানুক্রমিকভাবে গণনা অনুসারে হয়েছিল।
শেষ অবধি, আমাদের প্রতিটি উপসর্গের স্ট্রিং থেকে প্রথম অক্ষরটি বের করতে হবে, সেগুলিকে একটি স্ট্রিংয়ের সাথে একত্রিত করতে হবে এবং সেগুলি মুদ্রণ করতে হবে। প্রথম অক্ষর নিষ্কাশন করা হয় hC
। C
তালিকায় ম্যাট্রিক্স ট্রান্সপোজ করে, আসলে zip(*x)
পাইথন ৩. h
ফলাফল ম্যাট্রিক্সের প্রথম সারিটি বের করে। এটি আসলে একমাত্র সারি, কারণ 1 টি অক্ষরের উপসর্গের উপস্থিতি অন্য যে কোনও সম্পূর্ণ সারি তৈরি হতে বাধা দেয়। s
এই tuple এর অক্ষরগুলিকে একক স্ট্রিংয়ে যোগ করে। মুদ্রণ জড়িত।
টেস্ট:
$ pyth -c 'shCoc/NhN/zhNm>o_/zZSzdUz' <<< 'oroybgrbbyrorypoprr'
rorbyroprbyorrobypg
বর্ধিত প্রোগ্রাম টুকরা এতে oroybgrbbyrorypoprr
:
Sub-Piece Output
Sz bbbgoooopprrrrrryyy
o_/zNSz rrrrrroooobbbyyyppg (uses N because o uses N on first use.)
m>o_/zNSzdUz ['rrrrrroooobbbyyyppg', 'rrrrroooobbbyyyppg', 'rrrroooobbbyyyppg', 'rrroooobbbyyyppg', 'rroooobbbyyyppg', 'roooobbbyyyppg', 'oooobbbyyyppg', 'ooobbbyyyppg', 'oobbbyyyppg', 'obbbyyyppg', 'bbbyyyppg', 'bbyyyppg', 'byyyppg', 'yyyppg', 'yyppg', 'yppg', 'ppg', 'pg', 'g']
oc/NhN/zhNm>o_/zZSzdUz ['roooobbbyyyppg', 'obbbyyyppg', 'rroooobbbyyyppg', 'byyyppg', 'yppg', 'rrroooobbbyyyppg', 'oobbbyyyppg', 'pg', 'rrrroooobbbyyyppg', 'bbyyyppg', 'yyppg', 'ooobbbyyyppg', 'rrrrroooobbbyyyppg', 'rrrrrroooobbbyyyppg', 'oooobbbyyyppg', 'bbbyyyppg', 'yyyppg', 'ppg', 'g']
Coc/NhN/zhNm>o_/zZSzdUz [('r', 'o', 'r', 'b', 'y', 'r', 'o', 'p', 'r', 'b', 'y', 'o', 'r', 'r', 'o', 'b', 'y', 'p', 'g')]
shCoc/NhN/zhNm>o_/zZSzdUz rorbyroprbyorrobypg
পুরানো উত্তর:
ssCm*+t*u*G/zHS{-zd1]kd/zdo_/zNS{z
এই প্রোগ্রামটি কতবার নির্দিষ্ট সাবলিস্টে প্রতিলিপি করতে হবে তা গণনা করে কাজ করে। সাব-লিস্টের মতো দেখাচ্ছে ['', '', '', '', ... , 'r']
। এই উপ-তালিকার মোট দৈর্ঘ্য হ'ল অন্যান্য ক্যান্ডিসের সংঘটন সংখ্যার গুণফল u*G/zHS{-zd1
। পুরো সাবলিস্টটি খালি স্ট্রিংয়ের তালিকাটিকে বহুবার তৈরি করে তৈরি করা হয় ]k
, তারপরে মুছে ফেলা এবং উপাদান দিয়ে t
এবং ক্যান্ডির নামটি শেষে যুক্ত করে +d
।
তারপরে, এই উপ-তালিকাটি ইনপুটটিতে পাওয়া যায় যে ক্যান্ডিটি যতবার পাওয়া যায় ততবার প্রতিলিপি করা হয় /zd
, প্রতিটি ক্যান্ডির তালিকা সমান দৈর্ঘ্যের হয় তা নিশ্চিত করে।
এখন, এই ক্রিয়াকলাপটি যথাযথভাবে সাজানো ক্রম ( o_/zNS{z
) এর মাধ্যমে সমস্ত অনন্য ক্যান্ডিসের উপরে ম্যাপ করা হয়েছে , আমাদের কাছে প্রশ্ন বিবৃতিতে অনুরূপ একটি আয়তক্ষেত্র রয়েছে তবে পিরিয়ডের পরিবর্তে খালি স্ট্রিং রয়েছে। C
দুটি সারসংক্ষেপ ( ss
) এর পরে ম্যাট্রিক্স ট্রান্সপোজ ( ) করা চূড়ান্ত স্ট্রিং দেয়।
প্রতিপাদন:
$ pyth programs/candy.pyth <<< 'oroybgrbbyrorypoprr'
rorbyroprbyorrobypg