ইনপুট স্ট্রিংয়ে প্রতিটি চরিত্রের জন্য সংখ্যার উপস্থিতি প্রদর্শন করুন


21

কোডটি কীবোর্ড থেকে ইনপুট হিসাবে একটি স্ট্রিং নেওয়া উচিত:

The definition of insanity is quoting the same phrase again and again and not expect despair.

আউটপুটটি এমন হওয়া উচিত (কোনও নির্দিষ্ট ক্রমে সাজানো নয়):

  :  15
. :  1
T :  1
a :  10
c :  1
e :  8
d :  4
g :  3
f :  2
i :  10
h :  3
m :  1
o :  4
n :  10
q :  1
p :  3
s :  5
r :  2
u :  1
t :  6
y :  1
x :  1

সমস্ত এএসসিআইআই অক্ষর গণনা ইউনিকোডের প্রয়োজন হয় না, ফাঁকা স্থান, কোটস ইত্যাদি এবং ইনপুট কীবোর্ড থেকে আসা উচিত / কনস্ট্যান্ট নয়, গুণাবলী, আউটপুট নতুন লাইনের সাথে উপরের উদাহরণের মতো প্রতিটি অক্ষরের পরে মুদ্রণ করা উচিত, এটি স্ট্রিং হিসাবে ফিরে আসা উচিত নয় বা হ্যাশম্যাপ / অভিধান ইত্যাদি হিসাবে ফেলে দেওয়া হয়েছে, তাই x : 1এবং x: 1ঠিক আছে, কিন্তু {'x':1,...এবং x:1তা নয় are

প্রশ্ন: স্ট্যান্ডিন গ্রহণ এবং স্টাডআউট লেখার কাজ বা সম্পূর্ণ প্রোগ্রাম?
উত্তর: কোডটি স্ট্যান্ডার্ড ইন ব্যবহার করে ইনপুট গ্রহণকারী একটি প্রোগ্রাম হওয়া দরকার এবং স্ট্যান্ডার্ড আউট এর মাধ্যমে ফলাফলটি প্রদর্শন করা উচিত।

স্কোরবোর্ড:

সংক্ষিপ্ত সামগ্রিক : 5 বাইট

সংক্ষিপ্ত সামগ্রিক : 7 বাইট


3
ইনপুট হিসাবে সমস্ত ascii অক্ষর? নাকি শুধু মুদ্রণযোগ্য? নাকি ইউনিকোড পর্যন্ত? নতুন লাইন হবে?
জাস্টিন

2
আমি কি একটি ফাংশন তৈরি করতে পারি, বা একটি সম্পূর্ণ প্রোগ্রাম প্রয়োজনীয়? আমি কি সমস্ত আসকি অক্ষর আউটপুট এবং 0উপস্থিতির সংখ্যা হিসাবে মুদ্রণ করতে পারি ?
জাস্টিন

16
আউটপুট ফর্ম্যাটটি কি কঠোর, না এটি অর্থ সংরক্ষণে যথেষ্ট?
জন ডিভোরাক

আপনার সম্পাদনাটি আমার প্রশ্নের সমাধান করে না।
জাস্টিন

5
আউটপুটটি বর্ণমালা অনুসারে বাছাই করা দরকার কিনা আপনি বলেননি। আপনি বলেননি যে বিভাজক হওয়ার দরকার আছে " : "(এর পরে দুটি জায়গাগুলি নোট করুন :) বা অন্য (সংক্ষিপ্ত) পৃথককারী ভাল আছে কিনা। আপনি ইউনিকোড / এনকোডিংয়ের সমস্যাটি সমাধান করেননি।
কোডসইনচাউস

উত্তর:


2

এপিএল (ডায়ালগ ইউনিকোড) , 5 বাইট এসবিসিএস

পুরো প্রোগ্রাম বডি। STDIN থেকে স্ট্রিংয়ের জন্য অনুরোধ জানায় এবং নিউলাইন পৃথক করা টেবিলটি STDOUT এ মুদ্রণ করে। বামতমতম কলামটি হ'ল ইনপুট অক্ষর এবং গণনাগুলি একক স্পেস দ্বারা পৃথক হওয়া পৃথক সংখ্যার সাথে ডানদিকে যুক্ত হয়।

,∘≢⌸⍞

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

 STDIN থেকে পাঠ্য ইনপুট জন্য প্রম্পট

 একটি চাবি 'তৈরি গঠিত টেবিল
, অনন্য উপাদান অনুসৃত
 দ্বারা
 তার ঘটনার সূচকের ট্যালি (অর্থাত কতবার এটা পড়ে)


:দুর্ভাগ্যক্রমে আউটপুটটিতে এটি প্রয়োজনীয় বলে মনে হচ্ছে (আপনি এই উত্তরটি মুছতে পারবেন না)।
এরিক দি আউটগল্ফার

@ এরিকথ আউটগল্ফার একটি পুরানো মন্তব্য অনুসারে স্পষ্টতই ওপি এই উত্তরটি গ্রহণযোগ্য পেল
অ্যাডম

নিজে থেকেই প্রশ্নে
থাকার বিশিষ্টতার

15

পিএইচপি - 68 (বা 39) বাইট

<?foreach(count_chars(fgets(STDIN),1)as$k=>$v)echo chr($k)." : $v
";

উদাহরণ পাঠ্যের জন্য আউটপুট:

  : 15
. : 1
T : 1
a : 10
c : 1
d : 4
e : 8
f : 2
g : 3
h : 3
i : 10
m : 1
n : 10
o : 4
p : 3
q : 1
r : 2
s : 5
t : 6
u : 1
x : 1
y : 1

যদি সঠিক আউটপুট প্রয়োজন হয় না, এটি 39 বাইটের জন্য কাজ করবে :

<?print_r(count_chars(fgets(STDIN),1));

নমুনা আউটপুট:

Array
(
    [32] => 15
    [46] => 1
    [84] => 1
    [97] => 10
    [99] => 1
    [100] => 4
    [101] => 8
    [102] => 2
    [103] => 3
    [104] => 3
    [105] => 10
    [109] => 1
    [110] => 10
    [111] => 4
    [112] => 3
    [113] => 1
    [114] => 2
    [115] => 5
    [116] => 6
    [117] => 1
    [120] => 1
    [121] => 1
)

যেখানে প্রতিটি সংখ্যাসূচক সূচকটি প্রতিনিধিত্ব করে এমন চরিত্রের অর্ডিনাল মানকে বোঝায়।

আমি খুব দৃ strongly়ভাবে সন্দেহ করি যে একটি অন্তর্নির্মিত ফাংশন ব্যবহার করা যা সমস্যার অবস্থাগুলি শীঘ্রই বাতিল হয়ে যাবে।


$argv[1]পরিবর্তে fgets(STDIN)4 বাইট সংরক্ষণ করুন।
তিতাস

14

কে ( 8 7)

#:'=0:0

উদাহরণ

k)#:'=:0:0
The definition of insanity is quoting the same phrase again and again and not expect despair.
T| 1
h| 3
e| 8
 | 15
d| 4
f| 2
i| 10
n| 10
t| 6
o| 4
s| 5
a| 10
y| 1
q| 1
u| 1
g| 3
m| 1
p| 3
r| 2
x| 1
c| 1
.| 1

সম্পাদনা করুন: সাত থেকে নীচে, এইচ / টি অ্যারন ডেভিস

ব্যাখ্যা

কীবোর্ড থেকে একটি স্ট্রিং নিন:

k)0:0
text
"text"

স্বতন্ত্র উপাদানগুলিকে গোষ্ঠীভূত করুন এবং স্বতন্ত্র অক্ষর এবং মান হিসাবে কী যুক্ত থাকা মানচিত্রটি ফিরিয়ে আনুন যেখানে সূচকগুলি পৃথক উপাদানগুলি ঘটে।

k)=0:0
text
t| 0 3
e| ,1
x| ,2

এখন মানচিত্রে প্রতিটি প্রবেশের মান গণনা করুন।

k)#:'=0:0
text
t| 2
e| 1
x| 1

খুব অবিশ্বাস্য।
পিওরফেরেট

:মধ্যে =:প্রযোজন নেই; k)#:'=0:0সূক্ষ্ম (7 অক্ষর) কাজ করে। (সম্পর্কে জানার জন্য বোনাস 0:0, আমার কোনও ধারণা ছিল না!)
অ্যারন ডেভিস

একটি বিস্তারিত ব্যাখ্যা সত্যিই দুর্দান্ত হবে :)
টিমভি

qঅনুবাদটি বোঝা সহজ -count each group read0 0
স্কিভি

13

জিএনইউ মূল ব্যবহারসমূহ - 29 22 20 টি অক্ষর (বিন্যাস সহ 53)

উইম্পাসের উন্নতি (20 টি চর):

fold -1|sort|uniq -c

ফায়ারফ্লাইয়ের উন্নতি (22 টি অক্ষর):

grep -o .|sort|uniq -c

জোয়েটউইলের আসল (২৯ টি বর্ণ):

sed 's+.+\0\n+g'|sort|uniq -c

মূলত আমি sedপ্রতিটি চরিত্রের পরে কেবল একটি নতুন লাইন যুক্ত করতাম। এর সাথে ফায়ারফ্লাই উন্নত হয়েছে grep -o ., যেহেতু -oতার নিজস্ব লাইনে প্রতিটি মিলিত প্যাটার্ন প্রদর্শন করা হয়। fold -1বদলে ব্যবহার করে আরও উন্নতি করার বিষয়টি উইম্পাস নির্দেশ করেছিলেন । চমৎকার কাজ!

uniq আসল কাজটি করে, যদিও এটি কেবল বাছাই করা তালিকার ক্ষেত্রে প্রযোজ্য।

দ্রষ্টব্য যে আউটপুট ফর্ম্যাটটি প্রশ্নের উত্তরটির সাথে ঠিক মেলে না। তার sedপক্ষে যুক্তিগুলি অদলবদল করার জন্য একটি চূড়ান্ত রান প্রয়োজন । (এটি প্রয়োজন কিনা তা জানার জন্য জান ডভোরাকের প্রশ্নের উত্তরের অপেক্ষায় ...)

সেড দিয়ে পুনরায় ফর্ম্যাট করা "33" অন্য 33 টি অক্ষর! ( মোট 53 )

|sed 's/ *\(.*\) \(.\)/\2 :  \1/'

আউক প্রায় 25 টি অক্ষর যোগ করার সময়ও প্রায় কাজটি করতে পারে তবে এটি প্রথম স্থানটি লুকিয়ে রাখে। বোকা!

|awk '{print $2" :  "$1}'

আমি ভাবছি যদি পুনর্নির্মাণের পর্যায়ে উন্নতি করা যায় ...


2
সেড জন্য আপনি ব্যবহার করতে পারেন & "পুরো ম্যাচ" এর পরিবর্তে\0 , যদিও grep -o .এটি সামান্য ছোট। এটি উল্লেখযোগ্য যে uniq -cপ্রশ্নটির দেওয়া থেকে আউটপুট সামান্য পৃথক হয়।
ফায়ার

ওহ আপনাকে ধন্যবাদ! আপডেট করা হয়েছে। আমার ভুলে যাওয়া উচিত নয় grep -o; এটি একটি দরকারী এক।
জোয়েটউইডল

2
fold -1যেমন একই জিনিস আছেgrep -o .

অসাধারণ :) নতুন কৌশল শেখা!
জোয়েটউইলড


7

রুবি 1.9.3: 53 টি অক্ষর

(@ শিবার এবং @ দানিরির মন্তব্যের ভিত্তিতে))

gets.split("").uniq.map{|x|puts x+" : #{$_.count x}"}

নমুনা রান:

bash-4.1$ ruby -e 'a=gets;a.split("").uniq.map{|x|puts"#{x} : #{a.count x}"}' <<< 'Hello world'
H : 1
e : 1
l : 3
o : 2
  : 1
w : 1
r : 1
d : 1

 : 1

রুবি: 44 টি অক্ষর

আউটপুট ফর্ম্যাটকে সম্মান করা হচ্ছে না:

s=Hash.new 0;gets.chars{|c|s[c]+=1};pp s

নমুনা রান:

bash-4.1$ ruby -rpp -e 's=Hash.new 0;gets.chars{|c|s[c]+=1};pp s' <<< 'Hello, world!'
{"H"=>1,
 "e"=>1,
 "l"=>3,
 "o"=>2,
 ","=>1,
 " "=>1,
 "w"=>1,
 "r"=>1,
 "d"=>1,
 "!"=>1,
 "\n"=>1}

1
63 টি চরa=gets.strip;a.split('').uniq.each{|x|puts"#{x} : #{a.count(x)}"}
শিভা

কেন strip()? প্রশ্নটি বলে, "সমস্ত অক্ষর গণনা"।
manatwork

ঠিক আছে, \nআপনি যদি না চান
শিভা

নাঃ। \nসত্যিকার অর্থে উত্তীর্ণ হলে কেবল ফিরে আসে । এটি পাস করা এখানে স্ট্রিং ব্যবহারের একটি পার্শ্ব-প্রতিক্রিয়া। পেস্টবিন.
com

1
ব্যবহার $_এবং ditching aযদিও এখনও শব্দ। এবং এর c+"...পরিবর্তে"#{c}...
দানিরো

7

পাইথন 3: 76 টি অক্ষর

76

import collections as c
for x,y in c.Counter(input()).items():print(x,':',y)

44

(একই অক্ষরটি বহুবার মুদ্রণ করুন, বৈধ সংস্করণের জন্য ওয়াসির উত্তর দেখুন)

a=input()
for x in a:print(x,':',a.count(x))

45 চর সংস্করণ একাধিকবার অক্ষর মুদ্রণ করে।
ugoren

ঠিক ... লক্ষ্য করার জন্য ধন্যবাদ!
evuez

@ আইয়েজ আমি আপনার 45 চর সংস্করণটি ঠিক করেছি fixed তবে, আপনি এটি সরিয়ে ফেলেছেন তাই আমি এটি আবার একবার জমা দিয়েছি। একবার দেখুন
ওয়াসি

6

পার্ল 6: 21 অক্ষর

.say for get.comb.Bag
(REPL)
> ডটকম.বিগ ব্যাগের জন্য
উন্মাদতার সংজ্ঞা একই বাক্যটি বারবার উদ্ধৃত করে হতাশার প্রত্যাশা করে না।
"টি" => ১
"এইচ" => 3
"ই" => 8
"" => 15
"d" => 4
"f" => 2
"আমি" => 10
"এন" => 10
"টি" => 6
"o" => 4
"এস" => 5
"এ" => 10
"y" => 1
"কিউ" => ১
"ইউ" => ১
"g" => 3
"এম" => ১
"পি" => 3
"r" => 2
"x" => 1
"সি" => ১
"।" => ১

5

এপিএল (15)

M,⍪+⌿Z∘.=M←∪Z←⍞

আপনার যদি সত্যিই প্রয়োজন হয় তবে :এটি 19 টি (তবে অন্যরা আছেন যারা এটি অন্তর্ভুক্ত করছেন না):

M,':',⍪+⌿Z∘.=M←∪Z←⍞

আউটপুট:

      M,⍪+⌿Z∘.=M←∪Z←⍞
The definition of insanity is quoting the same phrase again and again and not expect despair. 
T  1
h  3
e  8
  16
d  4
f  2
i 10
n 10
t  6
o  4
s  5
a 10
y  1
q  1
u  1
g  3
m  1
p  3
r  2
x  1
c  1
.  1

আধা-গুরুতর প্রশ্ন - উত্তরাধিকারের এপিএল কোড বজায় রাখার মতো এটি কী?
মাইকেল স্টারন

@ মিশেলস্টার্ন: ধারণা নেই, আমার কখনই তা করা উচিত হয়নি। তবে আমি অনুমান করি যে এটি অন্যান্য লিগ্যাসি কোড বজায় রাখার চেয়ে খারাপ নয়। আপনি একবার ব্যবহার হয়ে গেলে এপিএলটি পড়তে আসলে বেশ সহজ।
মেরিনাস

5

আর, 30 টি অক্ষর

table(strsplit(readline(),""))

ব্যবহারের উদাহরণ:

> table(strsplit(readline(),""))
The definition of insanity is quoting the same phrase again and again and not expect despair.

    .  a  c  d  e  f  g  h  i  m  n  o  p  q  r  s  t  T  u  x  y 
15  1 10  1  4  8  2  3  3 10  1 10  4  3  1  2  5  6  1  1  1  1 

ভাল ধারণা! কিন্তু প্রশ্ন বলছে কোড অবশ্যই ফলাফল মুদ্রণ করতে হবে। আপনার কোডটি কেবল ফলাফলটি দেয়। আমি মনে করি আপনার প্রয়োজন cat
সোভেন হোহেনস্টেইন

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

5

পার্ল 5, 54 টি অক্ষর

map{$h{$_}++}split//,<>;print"$_ : $h{$_}\n"for keys%h

1
খুব সুন্দর সমাধান, পড়তে সহজ। sort keys%hযদিও এটি হওয়া দরকার ।
প্রিমো

1
আরে @ প্রোটিস্ট, ভাল দেখাচ্ছে! যদিও আমি @ প্রিমো এর সাথে একমত! তবে আপনি দুটি অক্ষর ব্যবহার করে $_=<>;s/./$h{$_}++/eg;বা map{$h{$_}++}<>=~/./g;তার পরিবর্তেmap{$h{$_}++}split//,<>;
ডম হেস্টিংস

1
@ ডোমহাস্টিংস বা $h{$_}++for<>=~/./g, যা আমার মনে হয় অনুকূল হতে পারে। \nপাশাপাশি আক্ষরিক নিউলাইন line
প্রিমো

আহ ভাল, আরও ভাল! হ্যাঁ, আমি আক্ষরিক নিউলাইনটি উল্লেখ করতে ভুলে গেছি, এটি আমার নতুন প্রিয় -1 বাইট হয়ে গেছে!
ডম হেস্টিংস

5

জাভাস্ক্রিপ্ট

  1. 66 53 বাইট:

    prompt(a={}).replace(/./g,function(c){a[c]=-~a[c]}),a
    
  2. 69 56 বাইট:

    b=prompt(a={});for(i=b.length;i--;){a[b[i]]=-~a[b[i]]};a
    
  3. 78 65 বাইট:

    prompt().split('').reduce(function(a,b){return a[b]=-~a[b],a},{})
    

এনবি: সমস্ত ক্ষেত্রে মুছে ফেলা সংখ্যা বাইটগুলি অতিরিক্ত console.log()কলকে বোঝায় যা কনসোলে চালিত হলে অর্থহীন। এবং এর সাথে দুর্দান্ত ধরার জন্য @ আইমাকে ধন্যবাদ জানাই । এটি অবশ্যই আরও কিছু বাইট সংরক্ষণ করেছে।-~a[b]prompt(a={})


1
লুপের পরিবর্তে মানচিত্রটি অল্প পরিমাণে সহায়তা করেও (a [b [i]] || 0) +1 এ কমিয়ে দেওয়া যেতে পারে - ~ a [b [i]] & কনসোল.লগ সম্ভবত শেষ মানটি ফিরে আসবে, প্রম্পট দিচ্ছে (a = {})। বিভক্ত ("")। মানচিত্র (ফাংশন (সি) {এ [সি] = - ~ এ [সি]}); এ
ইমমা

1
আপনি forরূপান্তর করতে পারেন for in- খালি ট্যাবে পরীক্ষার ফলে একই ফলাফল পাওয়া যায়। এছাড়াও, শেষের ;প্রয়োজন নেই, এইভাবে:b=prompt(a={});for(i in b){a[b[i]]=-~a[b[i]]}a
13াদিতে 1314

1
চমৎকার :-) খ = কে ... এর জন্য আটকে দিন এবং এর জন্য 'sw;' এর জন্য সোয়াপ করুন; আরও 2 বাইট ছাড়ার জন্য: (আমি ইন বি = প্রম্পট (a = {})) এ [খ [i]] = - [এ [খ [আমি]]; এ
ইমমা

যদিও তারা সঠিক পাঠ্য আউটপুট চায়: - / যা এটিকে / আমাকে 36 (থেকে 79) বাইট পিছনে রাখে: (আমি বি = প্রম্পট (এ = {})) এ [খ [আমি]] = - ~ এ [বি [আমি]]; (এন এ এ) কনসোল.লগের জন্য (এন + ":" + এ [এন])
ইমমা

1
@ ভিজিওন কেবলমাত্র যদি আদিমগুলি অতিরিক্ত বোঝা হয়ে থাকে - for inসত্যই আপনাকে এসও তে ফাংশন দেয়, তবে খালি ট্যাবে নয়;)
এথিত

5

পাইথন 2, সঠিকভাবে (58)

s=raw_input()
for l in set(s):print l+" : "+str(s.count(l))

আউটপুট:

python count.py
The definition of insanity is quoting the same phrase again and again and not expect despair.
  : 15
. : 1
T : 1
a : 10
c : 1
e : 8
d : 4
g : 3
f : 2
i : 10
h : 3
m : 1
o : 4
n : 10
q : 1
p : 3
s : 5
r : 2
u : 1
t : 6
y : 1
x : 1

পাইথন 2, চিতা স্টাইল (41)

s=input()
print {l:s.count(l) for l in s}

আউটপুট:

python count.py
"The definition of insanity is quoting the same phrase again and again and not expect despair."
{' ': 15, '.': 1, 'T': 1, 'a': 10, 'c': 1, 'e': 8, 'd': 4, 'g': 3, 'f': 2, 'i': 10, 'h': 3, 'm': 1, 'o': 4, 'n': 10, 'q': 1, 'p': 3, 's': 5, 'r': 2, 'u': 1, 't': 6, 'y': 1, 'x': 1}

দ্বিতীয়টি মুদ্রণের পরে বন্ধনীগুলি সরিয়ে ফেলা ভুলে গেছেন, যা এটি 41 করে তোলে
টুনএলআরঙ্ক

আপনি আপনার প্রথম সংস্করণের সাথে 52 অক্ষর নিচে যেতে পারেন: for l in set(s):print l,":",s.count(l)। দ্বিতীয়টির জন্য, অপ্রয়োজনীয় জায়গাগুলি সরিয়ে print{l:s.count(l)for l in s}
ফেললে

5

গণিত, 61 বাইট

Map[{#[[1]], Length@#} &, Gather@Characters[Input[]]] // TableForm

এটি তখন এই ডায়ালগ বাক্সটিকে পপ আপ করে,

ইনপুট

এবং নমুনা বাক্য জন্য, আউটপুট হিসাবে উত্পাদন করে

আউটপুট


4

অজগর 3, 49

ইভুয়েজ থেকে ধারণা চুরি করা

t=input()
for i in set(t):print(i,':',t.count(i))

ইনপুট:

The definition of insanity is quoting the same phrase again and again and not expect despair.

আউটপুট:

  :  15
. :  1
T :  1
a :  10
c :  1
e :  8
d :  4
g :  3
f :  2
i :  10
h :  3
m :  1
o :  4
n :  10
q :  1
p :  3
s :  5
r :  2
u :  1
t :  6
y :  1
x :  1

চমৎকার উন্নতি! আপনি সাজানো () সরিয়ে ফেলছেন না কেন?
evuez

1
অধিকার! যাইহোক, আপনি যদি কোনও তালিকা for i in sorted(set(t)):print(i,':',t.count(i))
বোঝাপড়াটি

@ আইয়েজ ধন্যবাদ, আমি আপনার কোডটিতে একটি মন্তব্য হিসাবে এটি যুক্ত করার কথা ছিল। আপনি যদি চান তবে আপনার সমাধানটিতে এটি আবার যুক্ত করতে পারেন (আমি আনন্দের সাথে এটি
মুছব

ন্যায্য হবে না, আমি ভেবেছিলাম না set()! ;)
evuez

4

জাভাস্ক্রিপ্ট (69 68 টি অক্ষর):

sস্ট্রিংটি ধরে রাখার প্রত্যাশা ।

_={};for(x in s)_[a=s[x]]=-~_[a];for(x in _)console.log(x+': '+_[x])

এটি পুরোপুরি নতুন নিয়ম অনুসরণ করে।

দ্রষ্টব্য: এটি কোনও পরিষ্কার পরিবেশ অনুমান করে, কোনও মানক অবজেক্ট প্রোটোটাইপগুলিতে কোনও কাস্টম বৈশিষ্ট্য ছাড়াই।

সম্পাদনা: 1 টি চরিত্র কম!

কনসোল আউটপুট:

T: 1
h: 3
e: 8
 : 15
d: 4
f: 2
i: 10
n: 10
t: 6
o: 4
s: 5
a: 10
y: 1
q: 1
u: 1
g: 3
m: 1
p: 3
r: 2
x: 1
c: 1
.: 1

পুরানো উত্তর (44 টি অক্ষর):

r={};[].map.call(s,function(e){r[e]=-~r[e]})

নিয়ম পরিবর্তনের আগে এটি বৈধ ছিল।

r আউটপুট রয়েছে।


3

হাস্কেল, 93

import Data.List
main=getLine>>=mapM(\s->putStrLn$[head s]++" : "++show(length s)).group.sort


3

সি # (178 220 টি অক্ষর)

@ স্পঞ্জম্যানের মন্তব্যের ভিত্তিতে আমি এটিকে কিছুটা পরিবর্তন করেছি:

using C=System.Console;using System.Linq;class P{static void Main()
{C.WriteLine(string.Join("\n",C.ReadLine().GroupBy(x=>x)
.OrderBy(x=>x.Key).Select(g=>g.Key+":"+g.Count())));}}

Line breaks added for readability, my first feeble attempt at code golf! :)

class P {static void Main(){var d=new Dictionary<char,int>();
Console.ReadLine().ToList().ForEach(x=>{ if(d.ContainsKey(x))
{d[x]++;}else{d.Add(x,1);}});Console.WriteLine(string
.Join("\n",d.Keys.Select(x=>x+":" +d[x])));}}

সংকলন করে না এটি এক করে: 178 অক্ষর। System.Linq ব্যবহার করে; সি = সিস্টেম.কনসোল ব্যবহার করে; শ্রেণি F {স্ট্যাটিক শূন্যস্থানীয় মেইন () {সি রাইট্রাইন (স্ট্রিং.জাইন ("\ n", সি। রিডলাইন))। গ্রুপবি (সি => সি) নির্বাচন করুন (নির্বাচন করুন) ছ => g.Key + + ":"। + + g.Count ()) OrderBy (গুলি => গুলি)));}}
Spongman

168: সি = সিস্টেম.কনসোল ব্যবহার; সিস্টেম.লিঙ্ক ব্যবহার করে; ক্লাস এফ {স্ট্যাটিক শূন্যস্থানীয় মেইন () {ফোর্যাচ (সিআরডলাইন (ভেরি জি। সি। রিডলাইন () তে। গ্রুপবাই (সি => সি) ।অর্ডারবি (g => g.Key )) সি। রাইটলাইন (g.Key + ":" + জি.কাউন্ট ());}}
স্পঞ্জম্যান

স্পষ্টত: বাছাই অনভ্যক্তিকর, 150: সি = সিস্টেম.কনসোল ব্যবহার করে; সিস্টেম.লিংক ব্যবহার করে; শ্রেণি এফ {স্ট্যাটিক শূন্যস্থানীয় মেইন () {ফোর্যাচ (সি। রিডলাইন (ভেরি জি)। গ্রুপবি (সি => সি)) সি রাইটলাইন (g.Key + ":" + জি.কাউন্ট ());}}
স্পঞ্জম্যান

কি দারুন. দ্রুত বা কাকতালীয়? আমি আমার উত্তর আপডেট করার পরে আপনি ঠিক এক সেকেন্ড জবাব দিয়েছিলেন: ডি সবেমাত্র লক্ষ্য করেছেন যে বাছাই করার বিষয়টি স্পষ্টভাবে উল্লেখ করা হয়নি!
জিদান

3
148: namespace System{using Linq;class F{static void Main(){foreach(var g in Console.ReadLine().GroupBy(c=>c))Console.WriteLine(g.Key+" : "+g.Count());}}
টিমউই

3

স্ক্লিপটিং , 19 টি অক্ষর

梴要⓶銻꾠⓷❸虛變梴❶⓺減負겠⓸⓸終丟

আউটপুট

T:1
h:3
e:8
 :15
d:4
f:2
i:10
n:10
t:6
o:4
s:5
a:10
y:1
q:1
u:1
g:3
m:1
p:3
r:2
x:1
c:1
.:1

আপনার চারপাশের স্পেস চান :, পরিবর্তন করার জন্য 긃똠, এটা 20 অক্ষরের করে।

ব্যাখ্যা

Get length of input string.
梴
Stack is now [ input, length ]
While {
要
    Get first character of string and push ":"
    ⓶銻꾠
    Stack is now [ length, input, firstchar, ":" ]
    Replace all occurrences of that character with empty string
    ⓷❸虛變
    Stack is now [ length, firstchar, ":", reducedinput ]
    Get the length of that, calculate difference to previous length, push "\n"
    梴❶⓺減負겠
    Stack is now [ firstchar, ":", reducedinput, newlength, diff, "\n" ]
    Move the input string and length back up, leaving output below it
    ⓸⓸
    Stack is now [ firstchar, ":", diff, "\n", reducedinput, newlength ]
                   `------------------------'                `-------'
                   Every iteration of the               The length provides
                   While loop generates                 the While loop's
                   a bit like this                      terminating condition
} End While
終
Discard the length which is now 0
丟

3

এফ # ( নির্ধারিত বিন্যাসের সাথে 66 66 59 49, 72)

let f s=s|>Seq.countBy(id)|>Seq.iter(printfn"%A")

আউটপুট:

> f The definition of insanity is quoting the same phrase again and again and not expect despair.
(' ', 15)
('.', 1)
('T', 1)
('a', 10)
('c', 1)
('d', 4)
('e', 8)
('f', 2)
('g', 3)
('h', 3)
('i', 10)
('m', 1)
('n', 10)
('o', 4)
('p', 3)
('q', 1)
('r', 2)
('s', 5)
('t', 6)
('u', 1)
('x', 1)
('y', 1)

নির্ধারিত বিন্যাসের সাথে এটি হয়ে যায়:

let f s=s|>Seq.countBy(id)|>Seq.iter(fun(a,b)->printfn"\"%c\" :  %d"a b)

কয়েকটি ফাংশন কলের জন্য পাইপযুক্ত বাক্য গঠন থেকে সরে গিয়ে আপনি একটি চরিত্র ফেলে দিতে পারেন:let f s=Seq.countBy id (Seq.sort s)|>Seq.iter(printfn"%A")
গোরিক

আসলে, কেন এমনকি প্রথম স্থানে বাছাই? let f s=Seq.countBy id s|>Seq.iter(printfn"%A")
গোরিক

3

ম্যাথামেটিকাল, 34 29 বাইট

অন্যান্য গণিতের উত্তর এত জটিল কেন তা নিশ্চিত নন ...;)

Grid@Tally@Characters@Input[]

3

বাশ ( 20 15 টি অক্ষর)

 ptx -S.|uniq -c
 10                                        a
  1                                        c
  4                                        d
  8                                        e
  2                                        f
  3                                        g
  3                                        h
 10                                        i
  1                                        m
 10                                        n
  4                                        o
  3                                        p
  1                                        q
  2                                        r
  5                                        s
  6                                        t
  1                                        T
  1                                        u
  1                                        x
  1                                        y

এএসসিআইআই এনকোডিং এখন সমর্থিত

বাশ (23 টি অক্ষর):

xxd -p -c1|sort|uniq -c

  1 0a
 15 20
  1 2e
  1 54
 10 61
  1 63
  4 64
  8 65
  2 66
  3 67
  3 68
 10 69
  1 6d
 10 6e
  4 6f
  3 70
  1 71
  2 72
  5 73
  6 74
  1 75
  1 78
  1 79

ASCII ফর্ম্যাটিং সমর্থিত নয়


শুধু কৌতূহলের বাইরে, আপনার কি সত্যিই দরকার | সাজানো | এখানে, আফাইক পিটিএক্স ইতিমধ্যে অক্ষরের একটি বাছাই করা তালিকা তৈরি করবে যা আপনি সরাসরি "ইউনিট-সি" থেকে খাওয়াতে পারবেন
জেপেলিন

@zeppelin আপনি যা বলেছিলেন তা একটু গুগল করে দেয়
পিয়ারফেরেট

3

জাভা 8, 273 253 249 246 239 200 বাইট

interface I{static void main(String[]a){int m[]=new int[999],i=0;for(int c:new java.util.Scanner(System.in).nextLine().getBytes())m[c]++;for(;++i<999;)if(m[i]>0)System.out.printf("%c: %d%n",i,m[i]);}}

-২৪ বাইট @ পোকে ধন্যবাদ ।
-7 বাইটস @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ ।

ব্যাখ্যা:

এখানে চেষ্টা করুন।

interface I{                        // Class
  static void main(String[]a){      //  Mandatory main-method
    int m[]=new int[999],           //  Integer-array to count the occurrences
        i=0;                        //  Index-integer, starting at 0
    for(int c:new java.util.Scanner(System.in).nextLine().getBytes())
                                    //   Loop over the input as bytes:
      m[c]++;                       //    Increase the occurrence-counter of the char by 1
    for(;++i<999;)                  //   Loop over the array:
      if(m[i]>0)                    //    If the current character occurred at least once:
        System.out.print("%c: %d%n",//     Print with proper formatting:
         i,                         //      The character
         m[i]);}}                   //      and the occurrence-count

249 বাইটসimport java.util.*;class I{public static void main(String[]a){Map m=new HashMap();for(char c:new Scanner(System.in).nextLine().toCharArray()){m.put(c,m.get(c)!=null?(int)m.get(c)+1:1);}for(Object e:m.keySet()){System.out.println(e+": "+m.get(e));}}}
পোকে

2
m.compute(c,(k,v)->v!=null?(int)v+1:1);পরিবর্তে m.put(c,m.get(c‌​)!=null?(int)m.get(c‌​)+1:1);3 বাইট সংরক্ষণ করুন।
অলিভিয়ার গ্রাগোয়ার

2

পাওয়ারশেল, 63

$a=@{};[char[]](read-host)|%{$a[$_]++};$a.Keys|%{"$_ :"+$a[$_]}

2
একটি হ্যাশ প্রতিটি কী, যে হ্যাশ একটি সম্পত্তি হিসেবে অ্যাক্সেস করা যেতে পারে, যাতে তোমরা প্রত্যেকে উদাহরণস্বরূপ প্রতিস্থাপন দুটি অক্ষর বন্ধ শেভ করতে $a[$_]সঙ্গে $a.$_। দেখুনhelp about_hash_tables
গোরিক

2

উইন্ডোজ কমান্ড স্ক্রিপ্ট - 72 বাইট

set/p.=
:a
set/a\%.:~,1%=\%.:~,1%+1
set.=%.:~1%
%.%goto:b
goto:a
:b
set\

আউটপুট:

\=15 (space)
\.=1
\a=10
\c=1
\d=4
\e=8
\f=2
\g=3
\h=3
\i=10
\m=1
\n=10
\o=4
\p=3
\q=1
\r=2
\s=5
\T=7
\u=1
\x=1
\y=1

নিস! এটি যদিও ভাঁজ কেসটি করে তবে ব্যাচ ফাইল প্রোগ্রামিংয়ে প্রকৃত চতুরতা দেখতে এটি সর্বদা আশ্চর্যজনক।
ব্রায়ান মিন্টন

2

জে, 23 অক্ষর

(~.;"0+/@|:@=)/:~1!:1]1

কিছুটা আলাদা আউটপুট ফর্ম্যাট (লাইন 2 স্টিডিন):

   (~.;"0+/@|:@=)/:~1!:1]1
Mississippi
┌─┬─┐
│M│1│
├─┼─┤
│i│4│
├─┼─┤
│p│2│
├─┼─┤
│s│4│
└─┴─┘

2

জে, 22 টি অক্ষর

(~.;"0+/@(=/~.))1!:1]1

উদাহরণ:

   (~.;"0+/@(=/~.))1!:1]1
The definition of insanity is quoting the same phrase again and again and not expect despair.
+-+--+
|T|1 |
+-+--+
|h|3 |
+-+--+
|e|8 |
+-+--+
| |15|
+-+--+
|d|4 |
+-+--+
|f|2 |
+-+--+
|i|10|
+-+--+
|n|10|
+-+--+
|t|6 |
+-+--+
|o|4 |
+-+--+
|s|5 |
+-+--+
|a|10|
+-+--+
|y|1 |
+-+--+
|q|1 |
+-+--+
|u|1 |
+-+--+
|g|3 |
+-+--+
|m|1 |
+-+--+
|p|3 |
+-+--+
|r|2 |
+-+--+
|x|1 |
+-+--+
|c|1 |
+-+--+
|.|1 |
+-+--+

2

সি শার্প

string str = Console.ReadLine(); // Get Input From User Here
char chr;
for (int i = 0; i < 256; i++)
{
    chr = (char)i; // Use The Integer Index As ASCII Char Value --> Convert To Char
    if (str.IndexOf(chr) != -1) // If The Current Char Exists In The Input String
    {
        Console.WriteLine(chr + " : " + str.Count(x => x == chr)); // Count And Display
    }
}
Console.ReadLine(); // Hold The Program Open.

আমাদের ক্ষেত্রে, যদি ইনপুটটি হবে " পাগলের সংজ্ঞা একই বাক্যটি বারবার উদ্ধৃত করছে এবং হতাশার প্রত্যাশা করে না। "

আউটপুট হবে:

  : 15
. : 1
T : 1
a : 10
c : 1
d : 4
e : 8
f : 2
g : 3
h : 3
i : 10
m : 1
n : 10
o : 4
p : 3
q : 1
r : 2
s : 5
t : 6
u : 1
x : 1
y : 1

1
প্রশ্নটি কীবোর্ড থেকে ইনপুট চেয়েছে, সুতরাং প্রথম লাইনটি হওয়া উচিত string str = Console.ReadLine();। তবে এটি কোড-গল্ফ তাই এটি হওয়া উচিত var str=Console.ReadLine();। ওপি প্রশ্নের উন্নতি না করা পর্যন্ত আমি অন্যান্য মন্তব্যগুলি আটকে রাখতে চাই।
পিটার টেলর

আপনি ঠিক বলেছেন, আমি আমার উত্তর সম্পাদনা করেছি।
আভিভ

2

সি #: 129

এটি আভিভসের উত্তর তবে সংক্ষিপ্ত:

var s=Console.ReadLine();for(int i=0;i<256;i++){var ch=(char)i;Console.Write(s.Contains(ch)?ch+":"+s.Count(c=>c==ch)+"\r\n":"");}

এটা আমার:

সি #: 103

foreach(var g in Console.ReadLine().OrderBy(o=>o).GroupBy(c=>c))Console.WriteLine(g.Key+":"+g.Count());

সংকলন করবে না, ইউএসিং / নেমস্পেস / শ্রেণি / পদ্ধতির সংজ্ঞাগুলির জন্য প্রায় 50 টি অক্ষর যুক্ত করতে হবে।
পিয়েরে-লুক পিনাল্ট

ওহ, জানতাম না যে এটি বাধ্যতামূলক, আমি দুঃখিত।
আব্বাস

2

পাইথন 2 (90 টি অক্ষর)

import collections as c;print"\n".join("%s %s"%i for i in c.Counter(raw_input()).items())

নিজস্ব উত্সে চালিত হলে আউটপুট:

  8
" 4
% 3
) 4
( 4
. 3
; 1
C 1
\ 1
_ 1
a 2
c 4
e 3
f 1
i 9
j 1
m 2
l 2
o 6
n 7
p 3
s 5
r 5
u 2
t 6
w 1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.