আমার মেয়ের বর্ণমালা


65

অন্য দিন আমরা আমার মেয়ের সাথে ফ্রিজে চৌম্বকীয় চিঠি দিয়ে বাক্য লিখছিলাম। যখন আমরা কিছু ( I love cat) তৈরি করতে সক্ষম হয়েছি তখন I love you tooঅপর্যাপ্ত পরিমাণ অক্ষর o(4) থাকার কারণে আমাদের কাছে অন্যগুলি তৈরি করার জন্য পর্যাপ্ত অক্ষর নেই (4)

আমি তখন জানতে পেরেছিলাম যে যখন একটি সেটটিতে 3 টি eঅক্ষর অন্তর্ভুক্ত ছিল তখন এটিতে কেবল 2 টি oঅক্ষর ছিল। সম্ভবত http://en.wikedia.org/wiki/Letter_fre ফ্রিকোয়েন্সি দ্বারা অনুপ্রাণিত এটি এখনও "ফ্রিজে" প্রকৃত পরিস্থিতি প্রতিফলিত করবে না।

সমস্যা

পাঠ্য ফাইলটি দেওয়া যেখানে প্রতিটি লাইনে একটি "নমুনা বাক্য" থাকে সেই ফ্রিজে একটি লিখতে চান, ন্যূনতম পরিমাণের অক্ষরের একটি বর্ণমালা সেট প্রস্তাব করুন তবে প্রতিটি বাক্য পৃথকভাবে লিখতে যথেষ্ট।

দ্রষ্টব্য: কেসগুলিকে উপেক্ষা করুন, সমস্ত চৌম্বকীয় অক্ষরগুলি যাইহোক রাজধানী cap

ইনপুট

ফাইলটিতে নিউলাইন পৃথক বাক্য রয়েছে:

hello
i love cat
i love dog
i love mommy
mommy loves daddy

আউটপুট

অক্ষরের তালিকা অনুসারে বাছাই করুন, যেখানে প্রতিটি অক্ষর কোনও বাক্য লেখার জন্য পর্যাপ্ত পরিমাণে উপস্থিত হয়:

acdddeghillmmmoostvyy

(ধন্যবাদ, আইসাক্যাগ!)

বিজয়ী

সংক্ষিপ্ত বাস্তবায়ন (কোড)

আপডেট: পরীক্ষা

আমি একটি অতিরিক্ত পরীক্ষা তৈরি করেছি এবং এখানে বিভিন্ন উত্তর দিয়ে চেষ্টা করেছি:

https://gist.github.com/romaninsh/11159751


2
vআউটপুটে একটি চিঠি থাকতে হবে ;)
আন্তোনিও রাগাগনিন

40
আমরা / এক উল্টা প্রতিস্থাপন করা প্রয়োজন অনুমতি দেওয়া হয় Mএকটি জন্য W, অথবা একটি পার্শ্বাভিমুখ Nএকটি জন্য Z? ;-)
ইলমারি করোনেন

4
মূলত আপনি Is ব্যবহার করে যে কোনও বর্ণ তৈরি করতে পারেন ।
ফিটফাট

7
আরো গুরুত্ব সহকারে, যখন আপনি বলবেন "মামলা এড়িয়ে যান", আপনি কি বলতে চান আমরা করতে পারে না অনুমান যে ইনপুট একই মামলায় ইতিমধ্যে সব হয়, অথবা আমরা এটা সব একই ক্ষেত্রে পরিবর্তিত হবে? এছাড়াও, আউটপুটটির জন্য কিছু নেতৃস্থানীয় স্পেস অন্তর্ভুক্ত করা কি ঠিক আছে?
ইলমারি করোনেন

3
@ ডুরকনব:_\¯
ইলমারি করোনেন

উত্তর:


18

গল্ফস্ক্রিপ্ট, ২৮ / ৩৪ টি অক্ষর

n/:a{|}*{a{.[2$]--}%*$-1=}%$

উপরের ২৮-অক্ষরের প্রোগ্রামটি ধরে নিয়েছে যে সমস্ত ইনপুট চিঠি একই ক্ষেত্রে রয়েছে। যদি এটি অগত্যা না হয় তবে আমরা {95&}%মোট 34 টি অক্ষরের জন্য কোডের কাছে প্রিডেন্ডিং করে তাদের জোর করে আপার কেস করতে বাধ্য করতে পারি :

{95&}%n/:a{|}*{a{.[2$]--}%*$-1=}%$

নোট:

  • সঠিক ক্রিয়াকলাপের জন্য, ইনপুটটিতে কমপক্ষে একটি নতুন লাইন অন্তর্ভুক্ত থাকতে হবে। এটি প্রতিটি লাইনের শেষে নিউলাইন সহ সাধারণ পাঠ্য ফাইলগুলির জন্য সত্য, তবে যদি ইনপুটটি কেবলমাত্র একটি লাইনের সাথে কোনও পেছনের নিউলাইন না করে থাকে তবে এটি সত্য নাও হতে পারে। n+কোডটি প্রিপেন্ড করে এটি দুটি অতিরিক্ত অক্ষরের জন্য নির্ধারণ করা যেতে পারে ।

  • 34-অক্ষরের সংস্করণে ব্যবহৃত বড় হাতের অক্ষরটি সত্যই অপরিশোধিত - এটি তাদের বড় হাতের অক্ষর (এবং স্পেসগুলি NUL) এর জন্য ছোট হাতের ASCII অক্ষর ম্যাপ করে , তবে সংখ্যার এবং বেশিরভাগ বিরামচিহ্নের সম্পূর্ণ গণ্ডগোল করে। আমি ধরে নিচ্ছি যে ইনপুটটিতে এ জাতীয় কোনও অক্ষর অন্তর্ভুক্ত হবে না।

  • ২৮-বর্ণচিহ্নের সংস্করণটি সমস্ত ইনপুট অক্ষর (নিউলাইন এবং NULগুলি বাদে ) সমানভাবে আচরণ করে। বিশেষত, যদি ইনপুটটিতে কোনও স্পেস থাকে তবে কিছু আউটপুটটিতে উপস্থিত হবে; সুবিধামত, তারা অন্য কোনও মুদ্রণযোগ্য ASCII অক্ষরের আগে বাছাই করবে। 34-বর্ণচিহ্নযুক্ত সংস্করণটি স্পেসগুলিকে উপেক্ষা করে না (কারণ এটি প্রমাণিত হয় যে এটি আমার কোনও অতিরিক্ত অক্ষর ব্যতীত আমি এটি করতে পারি)।

ব্যাখ্যা:

  • ঐচ্ছিক {95&}%উপসর্গ প্রতিটি ইনপুট বাইট হওয়া ASCII কোড ষষ্ঠ বিট (আউট zeroing ইনপুট uppercases )। এই মানচিত্রগুলি ছোট হাতের ASCII অক্ষর বড় হাতের অক্ষরে, নাল বাইটে ফাঁকা স্থান এবং নিউলাইনগুলি অপরিবর্তিত রেখে দেয়।95 = 64 + 31 = 10111112

  • n/নতুন লাইনে ইনপুট বিভক্ত করে, এবং :aফলশ্রুতিতে ফলাফল অ্যারে নির্ধারিত করে a। তারপরে {|}*অ্যারেতে স্ট্রিংগুলির সেট ইউনিয়নটি গণনা করে, যা (ধরে নেওয়া হয় যে অ্যারের কমপক্ষে দুটি উপাদান রয়েছে) ইনপুটটিতে সমস্ত অনন্য (নন-লাইন) অক্ষর সমন্বিত একটি স্ট্রিং দেয়।

  • নীচের { }%লুপটি এই প্রতিটি অনন্য চরিত্রের উপরে পুনরাবৃত্তি করে। লুপের দেহের অভ্যন্তরে, অভ্যন্তরীণ লুপটি a{.[2$]--}%অ্যারেতে থাকা স্ট্রিংগুলির উপরে পুনরাবৃত্তি করে a, প্রতিটি স্ট্রিং থেকে সমস্ত অক্ষর অপসারণ করা হয় যার বাহ্যিক লুপটি পুনরাবৃত্ত হয় তার সমান নয়।

    অভ্যন্তরীণ লুপটি ফিল্টার করা অ্যারের নীচে স্ট্যাকের উপরের বর্তমান অক্ষরের ASCII কোডটি ছেড়ে দেয়। আমরা ফিল্টার করা অ্যারেটিকে ASCII কোড ( *) দ্বারা বাছাই $করার আগে ( ) বাছাই করার আগে এবং শেষ উপাদানটি ( -1=) গ্রহণের আগে যতবার পুনরাবৃত্তি করে এটি ব্যবহার করি । বাস্তবে, ফিল্টার করা অ্যারেটিতে এটি দীর্ঘতম স্ট্রিং দেয় (যেমন তারা সকলেই একই চরিত্রের পুনরাবৃত্তি নিয়ে গঠিত হয়, ডিক্সিকোগ্রাফিক বাছাই কেবল দৈর্ঘ্য অনুসারে এগুলি সাজায়) কেবলমাত্র যদি অক্ষরটির ASCII কোড শূন্য থাকে তবে এই ক্ষেত্রে এটি কিছুই দেয় না।

  • শেষ অবধি, $বর্ণানুক্রমিকভাবে আউটপুটটি বাছাই করে।


3
অ্যামেজিং। টোডো: গল্ফস্ক্রিপ্ট শিখুন!
ডিএলসাস

1
আপনি এটি কমাতেও 26: করতে পারেন n/:a{|}*{{{=}+,}+a%$-1=}%$
হাওয়ার্ড

13

জে - 37 চর

স্টিডিন থেকে পাঠায়, কনসোলের আউটপুট।

dlb#&a.>./+/"2=/&a.tolower;._2[1!:1]3

1!:1]3স্টিডিনের কাছে কল call tolower;._2লাইনগুলি বিভক্ত করে এবং একই সাথে তাদের ছোট ছোট করে ডাবল ডিউটি ​​সম্পাদন করে। তারপরে আমরা গণনা করি যে প্রতিটি সারিতে একটি অক্ষর কতবার সংঘটিত হয় এবং এর সাথে +/"2=/&a.সমস্ত লাইনে পয়েন্টওয়াইজ সর্বাধিক গ্রহণ করি >./

অবশেষে, আমরা প্রতিটি অক্ষরের সাথে বর্ণমালা থেকে টানতে পারি #&a.। এর মধ্যে শূন্যস্থান অন্তর্ভুক্ত রয়েছে - সমস্তগুলি তাদের কম ASCII মানের কারণে সামনের দিকে পাওয়া যায় — সুতরাং আমরা কেবল নেতৃস্থানীয় ফাঁকাগুলি মুছুন dlb


12

জাভাস্ক্রিপ্ট (ECMAScript 6) - 148 139 135 টি অক্ষর

সংস্করণ 2:

অ্যারে উপলব্ধি ব্যবহার আপডেট হয়েছে:

[a[i][0]for(i in a=[].concat(...s.split('\n').map(x=>x.split(/ */).sort().map((x,i,a)=>x+(a[i-1]==x?++j:j=0)))).sort())if(a[i-1]<a[i])]

সংস্করণ 1:

[].concat(...s.split('\n').map(x=>x.split(/ */).sort().map((x,i,a)=>x+(a[i-1]==x?++j:j=0)))).sort().filter((x,i,a)=>a[i-1]!=x).map(x=>x[0])

ধরে নিই যে:

  • ইনপুট স্ট্রিং পরিবর্তনশীল মধ্যে হয় s;
  • আমরা ইনপুটটির বিষয়টি উপেক্ষা করতে পারি (প্রশ্নের দ্বারা নির্দিষ্ট হিসাবে - যেমন এটি উভয়টি উচ্চতর বা নিম্ন ক্ষেত্রে হয়);
  • আউটপুটটি অক্ষরের একটি অ্যারে (যা জাভাস্ক্রিপ্টের কাছাকাছি যতটা কাছাকাছি অপরের চরিত্রের তালিকার প্রয়োজনীয়তার প্রয়োজনীয়তা অর্জন করতে পারে); এবং
  • কনসোলে আউটপুট প্রদর্শিত হবে।

মন্তব্য সহ:

var l = s.split('\n')             // split the input up into sentences
         .map(x=>x.split(/ */)   // split each sentence up into letters ignoring any
                                  // whitespace
                  .sort()         // sort the letters in each sentence alphabetically
                  .map((x,i,a)=>x+(a[i-1]==x?++j:j=0)))
                                  // append the frequency of previously occurring identical
                                  // letters in the same sentence to each letter.
                                  // I.e. "HELLO WORLD" =>
                                  // ["D0","E0","H0","L0","L1","L2","O0","O1","R0","W0"]
[].concat(...l)                   // Flatten the array of arrays of letters+frequencies
                                  // into a single array.
  .sort()                         // Sort all the letters and appended frequencies
                                  // alphabetically.
  .filter((x,i,a)=>a[i-1]!=x)     // Remove duplicates and return the sorted
  .map(x=>x[0])                   // Get the first letter of each entry (removing the
                                  // frequencies) and return the array.

যদি তুমি চাও:

  • এটিকে স্ট্রিং হিসাবে ফিরিয়ে নিন .join('')এবং শেষে যুক্ত করুন;
  • কোনও ব্যবহারকারীর কাছ থেকে ইনপুট নিন তারপরে sভেরিয়েবলটি প্রতিস্থাপন করুন prompt(); অথবা
  • এটিকে ফাংশন হিসাবে লিখুন fতারপরে f=s=>শুরুতে যুক্ত করুন।

চলমান:

s="HELLO\nI LOVE CAT\nI LOVE DOG\nI LOVE MOMMY\nMOMMY LOVE DADDY";
[].concat(...s.split('\n').map(x=>x.split(/ */).sort().map((x,i,a)=>x+(a[i-1]==x?++j:j=0)))).sort().filter((x,i,a)=>a[i-1]!=x).map(x=>x[0])

আউটপুট দেয়:

["A","C","D","D","D","E","G","H","I","L","L","M","M","M","O","O","T","V","Y","Y"]

1
নিস! আপনি চারপাশে /\s*// */j=0
পেরেনগুলি

1
আপনি কি ...পরিবর্তে ব্যবহার করতে পারবেন না apply?
ভেন

আপনাকে উভয়ের জন্য ধন্যবাদ - যা 9 টি অক্ষর বাঁচায় - স্প্রেড ( ...) অপারেটর এমন একজন যা আমি আগে কখনও আসিনি।
এমটি0

[].concat(...s.split`N`.map(x=>x.split(/ */).map((x,i,a)=>x+(a[x]=a[x]?++j:j=1)))).sort().map((x,i,a)=>a[i-1]<x?x[0]:'').join``;
l4m2

11

পার্ল - 46 বাইট

#!perl -p
$s=~s/$_//ifor/./g;$s.=uc}for(sort$s=~/\w/g){

শেবাংকে ১ হিসাবে গণনা করা হচ্ছে এটি নীচে রুবি সমাধানটির একটি আলগা অনুবাদ।


রুবি 1.8 - 72 বাইট

s='';s+=$_.upcase.scan(/./){s.sub!$&,''}while gets;$><<s.scan(/\w/).sort

ইনপুট নেওয়া হয় stdin

নমুনা ব্যবহার:

$ more in.dat
Hello
I love cat
I love dog
I love mommy
Mommy loves daddy

$ ruby fridge-letters.rb < in.dat
ACDDDEGHILLMMMOOSTVYY

আউটপুট বাছাই করা প্রয়োজন।
ম্যাট

@ ম্যাট এখন স্থির।
প্রিমো

খুশী হলাম। যদি আপনার পার্ল অস্পষ্টভাবে সাম্প্রতিক হয় তবে আপনি /iএবং এর মধ্যে একটি স্থান চান for
tobyink

8

পাইথন - 206 204 199 177 145 129 117 94 88 চার্স

print(''.join(c*max(l.lower().count(c)for l in open(f))for c in map(chr,range(97,123))))

আমি কীভাবে ফাইলটির নাম পাওয়ার কথা ছিল তা নিশ্চিত ছিলাম না, তাই এই মুহুর্তে কোডটি ধরে নেওয়া হয় যে এটি নামের একটি ভেরিয়েবলের মধ্যে রয়েছে f। আমার যদি এটি পরিবর্তন করতে হয় তবে দয়া করে আমাকে জানান।


8
ইউনিক্সের চেতনায় - আপনি স্টিডিন থেকে পড়তে পারেন।
রোমানহংশ

5
সর্বদা ফাইলের নামের একটি অক্ষর দীর্ঘ করুন ...

3
@ টাল আমিও নতুন, তবে যদি এটি চরিত্রগুলি সংরক্ষণ করে তবে কেন নয়?

1
অভিমানী দ্বারা fইনপুট ফাইলের নাম এবং বড় হাতের ব্যবহার (সমস্ত চুম্বক চিঠি যাহাই হউক না কেন বড় হাতের অক্ষরে হয়), আপনি এটি 91 নিচে পেতে পারেন:print(''.join([chr(i)*max(l.upper().count(chr(i))for l in open(f))for i in range(65,91)]))
গেব

1
@ এনজেজকি 2 ভাল, যদি আমরা এটি কনসোলে চালিত করি, তাত্ত্বিকভাবে এটি কেবল ফলাফল নিজেই মুদ্রণ করবে ...
তালার

6

রুবি 1.9+, 51 (বা 58 বা 60)

a=*$<
?a.upto(?z){|c|$><<c*a.map{|l|l.count c}.max}

ধরে নিই সবকিছু ছোট হাতের নাগালে রয়েছে। কেস সংবেদনশীলতার মাধ্যমে 7 টি অক্ষর খরচ হয় .upcase, তবে কেস সংবেদনশীলতা এবং ছোট হাতের আউটপুটটির মাধ্যমে 9 টি অক্ষর লাগে .downcase


4

আর (156 ফাইল সহ)

সঙ্গে টেবিল আমি প্রতিটি বাক্যের জন্য চিঠি ফ্রিকোয়েন্সি টেবিল গঠন করা। তারপরে আমি প্রতিটি অক্ষরের সর্বাধিক মান গ্রহণ করে শেষ করি।

a=c();for(w in tolower(read.csv(fn,h=F)$V1))a=c(a,table(strsplit(w,"")[[1]]));a=tapply(seq(a),names(a),function(i)max(a[i]))[-1];cat(rep(names(a),a),sep="")

Ungolfed:

a=c()
words = read.csv(fn,h=F)$V1
for(w in tolower(words))
  a=c(a, table(strsplit(w, "")[[1]]))
a = tapply(seq(a), names(a), function(i) max(a[i]))[-1] ## The -1 excludes the space count.
cat(rep(names(a), a), sep="")

সমাধান:

acdddeghillmmmoooooostuvyy

@ ল্যাম্ব্রস্কো অ্যাসিডো আপনি তিনটি প্রথম লাইন (অব্যাহত কোডের) ভেক্টরাইজ করতে পারবেন যা আপনাকে দেবে a=unlist(lapply(readLines(fn),function(x)table(strsplit(tolower(x),""))));a=tapply(seq(a),names(a),function(i)max(a[i]))[-1];cat(rep(names(a),a),sep=""), তবে এটি কেবল তিনটি অক্ষরই ছোট
jkd

শুধুমাত্র 112 অক্ষর would করা সঙ্গে আরেকটি পন্থা cat(unlist(sapply(letters,function(i)rep(i,max(sapply(gregexpr(i,readLines(f)),function(x)sum(x>0)))))),sep="")অভিমানী fফাইলের নাম হল
jkd

4

Haskell,, 109 108

import Data.List
import Data.Char
main=interact$sort.filter(/=' ').foldl1(\x y->x++(y\\x)).lines.map toLower

প্রোগ্রামটি স্টাডিনের কাছ থেকে পড়ে এবং এসডিটিউটে লেখেন।

এটি বেশ সোজা: এটি স্ট্রিংটিকে লাইনগুলির তালিকায় বিভক্ত করে এবং তালিকায় পুনরাবৃত্তি করে এবং প্রতিটি লাইনে থাকা নতুন অক্ষর যুক্ত করে এটি পুনর্নির্মাণ করে।


ওহ বাহ আমি কেন আগে কখনও (\\) শুনিনি?
ফ্লাঙ্ক


4

পার্ল 6: 56 53 টি অক্ষর; 58 55 বাইট

say |sort
([∪] lines.map:{bag comb /\S/,.lc}).pick(*)

প্রতিটি লাইনের জন্য, এটি লোয়ার-কেসড স্ট্রিং ( comb /\S/,.lc) এর অ-স্পেস অক্ষরের জন্য কম্বস করে এবং একটি Bag, বা প্রতিটি চরিত্রের সংকলন তৈরি করে এবং কতবার এটি ঘটে। s এর [∪]ইউনিয়নকে Bagসমস্ত লাইনের উপরে নিয়ে যায় যা চরিত্রটির সর্বাধিক সংখ্যক বার হয়ে যায় gets .pick(*)এখানে হ্যাক-ওয়াই, তবে সমস্ত অক্ষরটি Bagসংঘবদ্ধ হওয়া থেকে সংঘটিত হওয়ার সংক্ষিপ্ততম উপায় it

সম্পাদনা করুন: যদি এটা খাটো হবে, আমি অনুবাদ চেষ্টা দেখার জন্য histocrat এর রুবি উত্তর । এটি characters৩ টি চরিত্রের, তবে আমি এখনও এই পদ্ধতির মতো:

$!=lines».lc;->$c{print $c x max $!.map:{+m:g/$c/}} for"a".."z"

3

হাস্কেল, 183 162 159

ধরে নিচ্ছি ফাইলটি আছে file.txt!

import Data.Char
import Data.List
main=readFile"file.txt">>=putStr.concat.tail.map(tail.maximum).transpose.map(group.sort.(++' ':['a'..'z'])).lines.map toLower

যদি file.txt থাকে, উদাহরণস্বরূপ

abcde
abcdef
aaf

স্ক্রিপ্ট আউটপুট হবে

aabcdef

মূলত আমি প্রতিটি লাইনে পুরো বর্ণমালা সংযোজন করছি, যাতে দলবদ্ধকরণ এবং বাছাইয়ের সময় আমি নিশ্চিত যে আমি একটি তালিকা দিয়ে শেষ করব যাতে ২ elements টি উপাদান রয়েছে। এরপরে, আমি "ফ্রিকোয়েন্সি টেবিল" স্থানান্তর করি, যাতে এই অ্যারেতে প্রতিটি সারি প্রতিটি লাইনে একটি অক্ষরের ফ্রিকোয়েন্সি সমন্বিত থাকে ["a","","aaa","aa","aaaa"]। তারপরে আমি প্রতিটি অ্যারের সর্বাধিক (যা আমি যেমন Ordস্ট্রিংস-ইনস্ট্যান্স কীভাবে কাজ করতে চাই তার মতোই কাজ করি) চয়ন করি এবং শুরুতে যে চিঠিটি যুক্ত করেছিলাম তা ফেলে রাখি, ফাঁকা স্থান থেকে মুক্তি পেতে এবং ফলাফলটি আউটপুট দেয়।


1
পরিবর্তে drop 1, কেবল ব্যবহার করুনtail
বার্গি

@ বেরগি হাহা ডারপ, ধন্যবাদ! আমি পোস্টে এটি পরিবর্তন।
ফ্লোনক

3

সি, 99 টি অক্ষর

t[256];main(c){for(--*t;++t[1+tolower(getchar())];);for(c=97;c<123;c++)while(t[c]--)putchar(c-1);}

এটির চেয়ে কম নতুন লাইন সরবরাহ করা থাকলে এটি ক্রাশ হয়। আমি মনে করি এটি বেশ সহজেই ঠিক করা যেতে পারে।


আমি চেষ্টা করেছি, তবে এটি সঠিক ফলাফল দেয় নি। gist.github.com/romaninsh/11159751
রোমানিশ

3

কেডিবি (কিউ / কে): ৫৯ টি অক্ষর:

d:.Q.a! 26#0
.z.pi:{d|:.Q.a##:'=_y}.z.exit:{-1@,/.:[d]#'!:d}
  • বর্ণমালা থেকে প্রাক-সাজানো বীজ অভিধান তৈরি করুন .কিউ
  • প্রতিটি ইনপুট লাইন প্রসেস করুন, ছোট হাতের অক্ষরে রূপান্তর করুন, অভিধানে গোষ্ঠী করুন, প্রতিটি উপাদান গণনা করুন, ফলাফল থেকে বর্ণানুক্রমিক অক্ষর গ্রহণ করুন (অর্থাত্ এই পর্যায়ে ফাঁকা স্থানগুলি, নিউলাইনগুলি ইত্যাদি) এবং চলমান মোট রাখতে গ্লোবাল ডি-তে সর্বাধিক বরাদ্দ ব্যবহার করুন use
  • নির্ধারিত প্রস্থান হ্যান্ডলারটি সংজ্ঞায়িত করুন, যা একটি ডিলিমিটার সংরক্ষণ করতে .z.pi এ যায় তবে অন্যথায় সেখানে অব্যবহৃত থাকে। অক্ষরের তালিকা তৈরি করতে প্রতিটি কী-মান থেকে নিন এবং সমাপ্তি করুন এবং শেষ পর্যন্ত প্রবন্ধে প্রিন্ট করুন।

-1 একটি নতুন লাইন যুক্ত করে, 1 ব্যবহার করে একটি অক্ষর সাশ্রয় হয় তবে নির্দিষ্ট আউটপুট উত্পন্ন হয় না। আশা করি আমি .z.pi / .z.exit বয়লারপ্লেট থেকে মুক্তি পেতে পারি, যা 14 টি অক্ষর মুছে ফেলবে।

সম্পাদনা করুন: বীজ অভিধান ব্যবহার করে আন্তঃআএসসি ব্যবহার এড়াতে হবে।


3

পার্ল, 46

for$:(a..z){$a[ord$:]|=$:x s/$://gi}}{print@a

এখানে আরও একটি পার্ল সমাধান রয়েছে, এটি এসটিডিএন থেকে পড়ে, -nসুইচ (গণনা করতে +1) প্রয়োজন, প্রিমোর স্কোরের সাথে সম্পর্কযুক্ত তবে অভিযোগ ছাড়াই চলে :-)। এটি বিটওয়াইসের ফলাফলটির পক্ষে orদীর্ঘতর স্ট্রিং আর্গুমেন্টের দৈর্ঘ্য রয়েছে তা ব্যবহার করে।


1
আমার পরীক্ষা দিয়ে চেষ্টা করেছি এবং এটি দুর্দান্ত কাজ করেছে।
রোমানহংশ

3

আমি আমার নিজস্ব সমাধান যুক্ত করছি:

বাশ - 72

ধরে নিই যে ইনপুটটি "i" ফাইলটিতে রয়েছে

for x in {A..Z};do echo -n `cat i|sed "s/[^$x]//g"|sort -r|head -1`;done

ব্যাখ্যা

প্রতিটি সম্ভাব্য চিঠির জন্য, কেবল ইনপুট ফাইল থেকে এটিকে ফিল্টার করে এর ফলে এমন কিছু ঘটে:

AAA
A
A

AAAA

A
AAAAAAAAAAAAAAAA

তারপরে ফলাফলটি বাছাই করা হয় এবং দীর্ঘতম লাইনটি নির্বাচন করা হয়। echo -nনতুন লাইনের সরাতে আছে।


3

বাশ, 171 159 জাঙ্ক আউটপুট সহ 158, 138

কেবল ছোট হাতের ইনপুট প্রয়োজন। ধরে নিই যে ফাইলটি বলা হয় _(আন্ডারস্কোর) বিরক্তিকর splitফাইলনামগুলির কারণে ইনপুট ফাইলে সর্বাধিক 26 টি লাইন তৈরি হয় যা (xaa, xab ... xaz, ???) তৈরি করে।

ইন bash, {a..z}আউটপুটস a b c d e f ...

touch {a..z}
split _ -1
for l in {a..z}
do for s in {a..z}
do grep -so $l xa$s>b$l
if [ `wc -l<b$l` -ge `wc -l<$l` ]
then mv b$l $l
fi
done
tr -d '\n'<$l
done

নমুনা আউটপুট

acdddeghillmmmoostvyy

ব্যাখ্যা

touch {a..z}

ফাইলগুলি তৈরি করুন যা আমরা পরে থেকে পড়ব যাতে ব্যাশ অভিযোগ না করে যে সেগুলির অস্তিত্ব নেই। আপনি যদি এই লাইনটি সরিয়ে থাকেন তবে আপনি 13 টি অক্ষর সংরক্ষণ করবেন তবে প্রচুর জাঙ্ক আউটপুট পাবেন।

split _ -1

ইনপুট ফাইলটি বিভাগগুলিতে বিভক্ত করুন, প্রতিটিতে 1 লাইন সংরক্ষণ করা। এই কমান্ডটি যে ফাইলগুলি তৈরি করে সেগুলির নাম xaa, xab, xac এবং এর মতো, আমার কেন ধারণা নেই।

for l in {a..z}
do for s in {a..z}

প্রতিটি অক্ষরের জন্য $lফাইলগুলিতে সঞ্চিত সমস্ত লাইন পড়ুন xa$s

do grep -so $l xa$s>b$l

-s1 চর বাঁচাতে স্যুইচটি সরান এবং প্রচুর জাঙ্ক আউটপুট পান। এটি grepঅস্তিত্বহীন ফাইলগুলি সম্পর্কে অভিযোগ করা থেকে বিরত রাখে (যদি আপনার 26 টি লাইন ইনপুট না থাকে তবে তা ঘটবে)। এটি ফাইলটি প্রসেস করে xa$s, উপস্থিতি ছাড়া কিছু বাদ $lদেয় এবং ফাইলে আউটপুট প্রেরণ করে b$l। সুতরাং "আমি মমাকে ভালবাসি" যখন $lএম হয় তখন প্রতিটি বর্ণের পরে নতুন লাইনের সাথে "মিমি" হয় ।

if [ `wc -l<b$l` -ge `wc -l<$l` ]

আমরা সবে যে ফাইলটি তৈরি করেছি তাতে রেখার সংখ্যাটি যদি আমাদের সর্বোচ্চ ফলাফলের লাইন সংখ্যাটি এখন পর্যন্ত (সঞ্চিত) থাকে তার চেয়ে বড় বা সমান (যেমন প্রতি লাইন প্রতি একটি বর্ণ রয়েছে আরও বেশি অক্ষর $l) ...

then mv b$l $l

... ফাইলটিতে আমাদের নতুন রেকর্ড সংরক্ষণ করুন $l। এই লুপের শেষে, যখন আমরা সমস্ত রেখার মধ্য দিয়ে $lযাব , ফাইলটি প্রতিটি অক্ষরের সমন্বিত এক্স রেখাগুলি সংরক্ষণ করবে $l, যেখানে x একটি অক্ষরে অক্ষরের উপস্থিতি সর্বাধিক সংখ্যা।

fi
done
tr -d '\n'<$l

নতুন লাইনগুলি সরিয়ে সেই নির্দিষ্ট চিঠির জন্য আমাদের ফাইলের সামগ্রীগুলি আউটপুট করুন। আপনি নতুন লাইন সরাতে না চান, সঙ্গে সঙ্গতিপূর্ণ পরিবর্তন trকরতে echo $l6 অক্ষর সংরক্ষণ।

done

জিএনইউ ব্যাশ, সংস্করণ ৩.২.৫১ (অ্যাপল) দিয়ে চেষ্টা করা হয়েছে, তবে ইনপুট ডেটা সম্বলিত একটি বর্তমান ফোল্ডারে '-l1aa' ফাইল করুন ..
রোমানিশ

@ রোমানিনশ এটি হতে পারে আপনার split(কোর্টিল থেকে) আলাদা সংস্করণ রয়েছে । আমি বর্তমানে উবুন্টু ১৪.০৪-তে জিএনইউ বাশ ৪.৩.৮ এবং জিএনইউ কোর্টিলস 8.২১ চালাচ্ছি এবং এটি ভাল কাজ করে (এটি আমার আপগ্রেড করার আগে ১৩.১০ তে উবুন্টুতেও কাজ করেছিল)। তবে এটি সঠিকভাবে কাজ করার জন্য আমাকে প্রোগ্রাম এবং ইনপুট ফাইলটি একটি পৃথক ডিরেক্টরিতে রাখতে হয়েছিল - আমার সন্দেহ হয় এটি কেবলমাত্র আমার বাড়ির ফোল্ডারে কয়েক মিলিয়ন জাঙ্ক ফাইলের কারণে হয়েছিল ।

@ আরমানিশ, আসলে, আপনি যদি স্ক্রিপ্টের সঠিক কমান্ডটি দেখেন: split _ -l1এবং আপনি লক্ষ্য করেছেন যে আপনার ইনপুটটি সংরক্ষণ করা হচ্ছে -l1aa, আমি মনে করি যে আপনার সংস্করণটি কোনও বিকল্প হিসাবে split স্বীকৃতি -l1দিচ্ছে না এবং পরিবর্তে এটি আউটপুটটির উপসর্গ হিসাবে নিয়েছে-lএবং 1রাখার জন্য --lines=1, বা ঠিক রাখার -1( বা এটি একটি অপ্রচলিত এবং আরও গল্ফ বাক্য গঠন যা আমি এখন পোস্টটি আপডেট করব) এর মধ্যে একটি স্থান রাখার চেষ্টা করুন ।

3

সি #, 172 বাইট

var x="";foreach(var i in File.ReadAllText(t).ToLower().Split('\r','\n'))foreach(var j in i)if(x.Count(c=>c==j)<i.Count(c=>c==j))x+=j;string.Concat(x.OrderBy(o=>o)).Trim();

চতুর ... চালাক ... আমি linq সঙ্গে বাজানো সম্পর্কে চিন্তা, কিন্তু সন্দেহ এই contorted foreachs যেমন :) ছোট হবেন
Noctis

2

পাইথন 2 - 129

@ টাল থেকে আইডিয়া

a,r=[0]*26,range(26)
for l in open('f'):a=[max(a[i],l.lower().count(chr(i+97)))for i in r]
print''.join(chr(i+97)*a[i]for i in r)

একই সংখ্যক অক্ষরগুলিতে একই জিনিসটি করার আরও কয়েকটি উপায়:

a=[0]*26
b='(chr(i+97)))for i in range(26)'
exec'for l in open("f"):a=[max(a[i],l.lower().count'+b+']\nprint"".join(a[i]*('+b+')'

a=[0]*26
b='(chr(i+97)))for i in range(26))'
exec'for l in open("f"):a=list(max(a[i],l.lower().count'+b+'\nprint"".join(a[i]*('+b

এটি ধরে নিয়েছে যে অ্যাক্সেসযোগ্য ডিরেক্টরিতে ফাইলটি এফ হিসাবে সংরক্ষণ করা হয়েছে। এই প্রোগ্রামটি সরাসরি চলমান, কোনও অতিরিক্ত ইনপুট প্রয়োজন নেই।


ডাউন ভোট কেন? আমি যদি কিছু ভুল করে থাকি তবে দুঃখিত।
isaacg

2

গণিত v10 - 110

এটি এখনও বাইরে যায়নি, তবে নতুন ডকুমেন্টেশন খুব সাবধানতার সাথে পড়া , আমি মনে করি এটি কাজ করা উচিত:

StringJoin@MapIndexed[#2~Table~{#1}&,Rest@Merge[Counts/@Characters@StringSplit[ToLowerCase@Input[],"\n"],Max]]

2

স্কেলা, 125 টি অক্ষর

val i=""::io.Source.stdin.getLines.toList.map(_.toLowerCase);println('a'to'z'map(c=>(""+c)*i.map(_.count(_==c)).max)mkString)

প্রথমে আমি ইনপুটটি পড়ি, এটিকে লোয়ার কেসে রূপান্তরিত করি এবং একটি খালি লাইন যুক্ত করি।

তারপরে প্রতিটি চিঠির aজন্য zআমি সেই চিঠির সর্বাধিক সংখ্যক বারে এটির যে কোনও লাইনে প্রদর্শিত হয় পুনরাবৃত্তি করি (এজন্যই আমার খালি লাইন দরকার: maxএনপ্টি ইনপুটটিতে কল করা যায় না)। তারপরে আমি কেবল ফলাফলগুলিতে যোগদান করি এবং আউটপুট প্রিন্ট করি।

একটি ফাইল থেকে পড়তে, প্রতিস্থাপন stdinসঙ্গে fromFile("FILENAME"), 132 টি অক্ষর + + ফাইলের নাম দৈর্ঘ্য কোডের আকার বৃদ্ধি।


2

জাভাস্ক্রিপ্ট, 261 অক্ষর

eval('s=prompt().toUpperCase().split("\\n");Z=[########0,0];H=Z.slice();s@r){h=Z.slice();r.split("")@c){if(c.match(/\\w/))h[c.charCodeAt(0)-65]++});H=H@V,i){return V>h[i]?V:h[i]})});s="";H@n,i){s+=Array(n+1).join(String.fromCharCode(i+97))});s'.replace(/@/g,".map(function(").replace(/#/g,"0,0,0,"))

eval(...)রিয়েল কোডটি পাওয়ার জন্য সরান এবং কার্যকর করুন; এটি ( কিছুটা ) সঙ্কুচিত।

sলাইনগুলির অ্যারে এবং আউটপুটযুক্ত স্ট্রিং হিসাবে একাধিক ফাংশনগুলিতে hপ্রতি লাইন অক্ষরের Hহিস্টোগ্রাম থাকে এবং বর্তমানে অবধি সর্বোচ্চ মান সহ হিস্টগ্রাম রয়েছে। এটি কেস-সংবেদনশীল এবং এজেড এবং এজেড ব্যতীত অন্য কিছু উপেক্ষা করে (আমার মনে হয় ... জেএস অ্যারেগুলি কখনও কখনও অদ্ভুত থাকে)।

এখন সঠিক :)


এটি কেবলমাত্র চরিত্রগুলিকেই জুড়ে দেয়, প্রশ্নটি যা জিজ্ঞাসা করেছিল তা পুরোপুরি নয়। অক্ষরগুলি মোট ইনপুটটিতে কোনও একক বাক্য গঠনের সর্বনিম্ন সেট হতে হবে, সবগুলিই নয়। যদিও আউটপুটটি বাছাই করার প্রয়োজনীয়তাটি রোধ করার জন্য আপনার মতামতটি বেশ পছন্দ করি।
ম্যাট

@ ম্যাট ওহ ঠিক আছে ... আমি পরে এটি ঠিক করব। সত্যিই এখনই সময় পাইনি।
টমসডিং

1
@আমি শেষ না হওয়া পর্যন্ত কী ঘটছে তা ভেবে অবাক হলাম? আমি এটি পছন্দ করি :)
ম্যাট

2

জাভাস্ক্রিপ্ট ( ES5 ) 141 বাইট

ভেরিয়েবল ধরে নিই sইনপুট স্ট্রিংটি কোনও কেস-পরীক্ষার প্রয়োজনীয়তা এবং অ্যারে আউটপুট ছাড়াই:

for(a in s=s[o=_='',y='split']('\n'))for(i=0;x=s[a][i++];)o+=x!=0&&(l=s[a][y](x).length-~-o[y](x).length)>0?Array(l).join(x):_;o[y](_).sort()

আমি আপনার সমাধানটি পরীক্ষা করেছিলাম এবং একটি আউটপুট জন্য "ও" এর ভিতরে খুঁজছিলাম, তবে এটি সঠিকভাবে সাজানো মনে হচ্ছে না। ( gist.github.com/romaninsh/11159751 দেখুন )
রোমানিশ

@ রোমানিশ আপনি যে আউটপুটটি আমি দেখছি তা সঠিকভাবে সাজানো দেখায়
nderscore

হ্যাঁ, এটি একটি উল্লেখ / সঠিক আউটপুট। আমি যখন আপনার কোডটি চেষ্টা করেছিলাম তখন আমি এটি পেয়েছি: gist.github.com/romaninsh/11161018
রোমানহংশ

আমি যদি আপনার উদাহরণটি ভুলভাবে কার্যকর করি তবে ক্ষমা চাই।
রোমানহংশ

@ রোমানিশ আহ, আমি ঠিক করেছি এটি ব্রাউজারের কনসোলে চালানো উচিত। নোডে কাজ করে এমন একটি সংস্করণ এখানে পুনরায় ফর্ম্যাট করা হয়েছে: gist.github.com/nderscore/96aa888c77d275c26c15
nderscore

2

পাওয়ারশেল - 141

'এ' নামের একটি ফাইল থেকে পাঠ্য পড়ে।

$x=@{}
gc a|%{[char[]]$_|group|%{$c=$_.name.tolower().trim()
$n=$_.count;$x[$c]=($n,$x[$c])[$n-lt$x[$c]]}}
($x.Keys|sort|%{$_*$x[$_]})-join""

2

গ্রোভি, 113/127 102/116 টি অক্ষর

ধরে নিচ্ছি ফাইলটি সবই এক ক্ষেত্রে (১০২ টি অক্ষর):

t=new File('f').text;t.findAll('[A-Z]').unique().sort().each{c->print c*t.readLines()*.count(c).max()}

ধরে নিচ্ছি ফাইলটি মিশ্র ক্ষেত্রে রয়েছে (১১6 টি অক্ষর):

t=new File('f').text.toUpperCase();t.findAll('[A-Z]').unique().sort().each{c->print c*t.readLines()*.count(c).max()}

মূলত:

  • t=new File('f').text ফাইলটির পাঠ্য পেতে।
  • t.findAll('[A-Z]').unique().sort().each{c-> অনন্য অক্ষরগুলি পেতে, তাদের বাছাই করুন এবং পুনরাবৃত্তি করুন।
  • print c*t.readLines()*.count(c).max() একটি লাইনে সর্বাধিক ঘটনাগুলি পান এবং বহুবার অক্ষরটি মুদ্রণ করুন।

2

বাশ (বেশিরভাগ বিশৃঙ্খলা) - 172 163 157

awk -v FS="" '{delete l;for(i=1;i<=NF;i++)l[toupper($i)]++;for(i in l)o[i]=(o[i]>l[i]?o[i]:l[i])}END{for(i in o)for(j=0;j<o[i];j++)print i}'|sort|tr -d ' \n'

টেক্সটটি বিশ্রীকরণে পাইপ করা দরকার (বা ফাইল হিসাবে নির্দিষ্ট করা)।

উদাহরণ ইনপুট

Hello
I love cat
I love dog
I love mommy
Mommy loves daddy

উদাহরণ আউটপুট

ACDDDEGHILLMMMOOSTVYY

পিএইচপি (সম্ভবত আরও ভাল হতে পারে) - 174 210

$o=array();foreach(explode("\n",$s) as $a){$l=array();$i=0;while($i<strlen($a)){$k=ucfirst($a[$i++]);if($k==' ')continue;$o[$k]=max($o[$k],++$l[$k]);}}ksort($o);foreach($o as $k=>$v)for($i=0;$i<$v;$i++)echo $k;

ধরে নিন যে স্ট্রিংটি ভেরিয়েবলের মধ্যে রয়েছে

উদাহরণ ইনপুট

Hello
I love cat
I love dog
I love mommy
Mommy loves daddy

উদাহরণ আউটপুট

ACDDDEGHILLMMMOOSTVYY

2

আমি বুঝতে পারি এটি সম্ভবত সবচেয়ে দক্ষ উত্তর নয়, তবে আমি চেষ্টা করেও সমস্যাটি সমাধান করতে চেয়েছিলাম। এখানে আমার ObjC প্রকরণ:

- (NSArray *) lettersNeededForString:(NSString *)sourceString {
    sourceString = [sourceString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
    sourceString = [sourceString stringByReplacingOccurrencesOfString:@" " withString:@""];
    const char * sourceChars = sourceString.UTF8String;
    NSMutableArray * arr = [NSMutableArray new];
    for (int i = 0; i < sourceString.length; i++) {
        [arr addObject:[NSString stringWithFormat:@"%c", sourceChars[i]]];
    }
    return [arr sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
}    

তারপরে আপনি যেকোন স্ট্রিংয়ের জন্য এটি কল করতে পারেন:

NSArray * letters = [self lettersNeededForString:@"Hello\nI love cat\nI love dog\nI love mommy\nMommy loves daddy"];
NSLog(@"%@",letters);

আমি বড় পরিমাণে পাঠ্য সহ অ্যাপ্লিকেশনগুলি সম্পর্কে ভাবছিলাম এবং আমার অ্যারে গণনা করার দরকার নেই। এর জন্য, আমি এটি পেতে পদ্ধতিতে যুক্ত করেছি:

- (NSDictionary *) numberOfLettersNeededFromString:(NSString *)sourceString {

    sourceString = [sourceString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
    sourceString = [sourceString stringByReplacingOccurrencesOfString:@" " withString:@""];
    const char * sourceChars = sourceString.UTF8String;
    NSMutableArray * arr = [NSMutableArray new];
    for (int i = 0; i < sourceString.length; i++) {
        [arr addObject:[NSString stringWithFormat:@"%c", sourceChars[i]]];
    }

    static NSString * alphabet = @"abcdefghijklmnopqrstuvwxyz";
    NSMutableDictionary * masterDictionary = [NSMutableDictionary new];
    for (int i = 0; i < alphabet.length; i++) {
        NSString * alphabetLetter = [alphabet substringWithRange:NSMakeRange(i, 1)];
        NSIndexSet * indexes = [arr indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
            if ([[(NSString *)obj lowercaseString] isEqualToString:alphabetLetter]) {
                return YES;
            }
            else {
                return NO;
            }
        }];

        masterDictionary[alphabetLetter] = @(indexes.count);
    }

    return masterDictionary;
}

এর মতো চালান:

NSDictionary * lettersNeeded = [self numberOfLettersNeededFromString:@"Hello\nI love cat\nI love dog\nI love mommy\nMommy loves daddy"];
NSLog(@"%@", lettersNeeded);

তোমাকে দিবে:

{a = 2; খ = 0; সি = 1; d = 4; e = 5; f = 0; g = 1; এইচ = 1; i = 3; j = 0; কে = 0; l = 6; মি = 6; n = 0; o = 8; পি = 0; q = 0; r = 0; s = 1; t = 1; u = 0; v = 4; ডাব্লু = 0; x = 0; y = 3; z = 0; }

যা আমি মনে করি আমার কাছে যদি খুব বড় পরিমাণে পাঠ্য থাকে এবং আমার প্রতিটি অক্ষরের কতটি প্রয়োজন তা কেবল আমার জানা দরকার।



2

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

import collections
c = collections.Counter()
for line in open("input.txt"):
    c |= collections.Counter(line.upper())
print "".join(sorted(c.elements()))

পিসিজিতে আপনাকে স্বাগতম! এই সাইটটি মার্কডাউন সিনট্যাক্স সমর্থন করে, যা আপনি আপনার কোডটি ফর্ম্যাট করতে ব্যবহার করতে পারেন, যাতে এটি দুর্দান্ত দেখা যায়: কেবল কোড 4 স্পেসের প্রতিটি লাইন ইনডেন্ট করুন।
অ্যালগরিদমশর্ক

সংগ্রহগুলি আমদানি করার জন্য আপনার প্রয়োজনীয় অক্ষর যুক্ত করতে হবে।
isaacg

1
আপনার প্রতিটি বাক্য পৃথকভাবে লেখার জন্য ন্যূনতম পরিমাণের চিঠি দরকার হওয়ায় প্রশ্নের উত্তর দেয় না। আপনার কোডে, আপনি একই সাথে সমস্ত বাক্য লেখার জন্য প্রয়োজনীয় অক্ষরের সংখ্যা আউটপুট দেন।
njzk2

আপনি বিবৃতিটির sশেষে একটি মিস করছেন importএবং withব্লকটিতে ইনডেন্টেশন নেই। এবং যেহেতু এটি কোড গল্ফ, এটি যেখানে সম্ভব সেখানে অপ্রয়োজনীয় হোয়াইটস্পেস অপসারণ করার জন্য আপনাকে প্রচুর উপকার করবে।
ফ্রেক্সটিল

যেহেতু এটি কোড গল্ফ, তাই বিবৃতিটি সরিয়ে ফেলুন (খোলার জন্য কেবল কোনও কলটি লুপ করুন) এবং আমি মনে করি না উপাদানগুলি বাছাই করা দরকার।
রিমকো গ্রিলিচ

2

সি, 298 বাইট

char c;
int j,n;
char C[26];
char D[26];
int main()
{
char a='a';
while((c=getchar())>=0)
{
c=tolower(c);
if(c>=a&&c<='z'){j=c-a;D[j]++;}
if(c=='\n'){
for(j=0;j<26;j++){
if(D[j]>C[j])
{C[j]=D[j];}
D[j]=0;
}
}
}
for(j=0;j<26;j++)
{
n=C[j];
while(n--)
{
putchar(a+j);
}
}
}

অ্যারে ডি প্রতিটি লাইনের জন্য চিঠিপত্রের সংখ্যা ধরে রাখে, তারপরে সর্বাধিক গণনাটি সিটিতে অনুলিপি করা হয়

দ্রষ্টব্য: আমি গতকাল আমার উত্তরটি রেখেছিলাম তবে এখন তা তালিকাভুক্ত নয়, সম্ভবত আমি ভুল করে সম্পাদনার পরিবর্তে মুছুন টিপেছেন?


এটি কেবল 271 বাইট। আপনার কাছে প্রচুর বহিরাগত নিউলাইনও রয়েছে। এছাড়াও, আপনি বাদ যাবে intথেকে int main()এবং int j,n;
nyuszika7h

এছাড়াও, আপনার আগের উত্তরটি এখনও আছে।
nyuszika7h

2

পিএইচপি, 143 বাইট

ধরে নিচ্ছি যে ইনপুটটি ভেরিয়েবলের মধ্যে পাস হয়েছে $s:

$i=explode("\n",$s);foreach(range('a','z')as$c){$x=array_map(function($l)use($c){return substr_count($l,$c);},$i);echo str_repeat($c,max($x));}

ব্যাখ্যা

প্রতিটি সম্ভাব্য অক্ষরের জন্য আমি ব্যবহারকারীর দ্বারা সংজ্ঞায়িত ফাংশনটির মাধ্যমে স্ট্রিংয়ের তালিকা সহ অ্যারে ম্যাপিং করছি যা প্রতিটি লাইনকে ব্যবহার করা অক্ষরের সংখ্যার সাথে প্রতিস্থাপন করে। চিঠির জন্য 'ডি' লাইনটি "ম্যামি বাবা পছন্দ করে" 3 তে ম্যাপ করা হবে।

এরপরে আমি অ্যারে এবং আউটপুট চিঠির মধ্যে সর্বাধিক মানটি কেবল এটি বহু বার খুঁজে পাই। এখানে বহু-লাইন সংস্করণ:

$i=explode("\n",$s);
foreach(range('A','Z')as $c){
    $x=array_map(function($l)use($c){
        return substr_count($l,$c);
    },$i);
    echo str_repeat($c,max($x));
}

1

পাইথন (209, নমুনা অন্তর্ভুক্ত সহ, 136 ছাড়াই)):

from collections import*;c=Counter()
for i in ["Hello","I love cat", "I love Dog", "I love mommy", "Mommy loves daddy"]:
 for j in i.lower(): c[j]=max(c[j],list(i).count(j))
print "".join(sorted(c.elements()))

আমি আজ বিকেলে একটি পিওয়াইজি নমুনা পোস্ট করব।


পাইথনের স্ট্রিংগুলির একটি গণনা পদ্ধতি ছিল আমার কোনও ধারণা ছিল না ... আমি মনে করি না যে এই নতুন পাওয়া জ্ঞানটি ব্যবহার করার জন্য প্রশ্নের উত্তরটি আমার উত্তর পরিবর্তন করা বৈধ হিসাবে বিবেচিত হবে? : পি
তাল

পছন্দ করুন আপনি যদি কাছাকাছি তাকান তবে এটি একটি তালিকার একটি পদ্ধতি
17uʎs

1
ওহ, আমি দেখছি ... তবে একটি অপ্রত্যাশিত মোচড়লে এটি স্ট্রিংগুলির সাথে দেখা যাচ্ছে যে সম্ভবত এই পদ্ধতিটি রয়েছে (যাইহোক 3.x তে)
তালুক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.