একটি ইনপুট স্ট্রিংয়ে কোনও অক্ষরের উপস্থিতি সন্ধান করুন


18

চ্যালেঞ্জ

একটি প্রোগ্রাম লিখুন xযা একটি স্ট্রিং দেওয়া হয় যা 10 অক্ষর দীর্ঘ এবং একটি yঅক্ষর yহয়, স্ট্রিংতে অক্ষরটি যে পরিমাণে ঘটে তার আউটপুট দেয় x

বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি এমনভাবে জিততে পারে।

উদাহরণ

Input: tttggloyoi, t
Output: 3

Input: onomatopoe, o
Output: 4

11
এটি চ্যালেঞ্জের চেয়ে প্রায় সহজ বলে মনে হচ্ছে। এছাড়াও কেন ইনপুটটি 10 ​​এ সীমাবদ্ধ রাখবেন না, কোনও সীমা ছাড়াই?
সময়সীকরণ করুন

7
একটি বিজয়ী শর্ত প্রয়োজন।
isaacg

2
আমার সম্পাদনাটি যদি আপনার সাথে একমত না হয় তবে নির্দ্বিধায় দ্বিধা করুন
বিটা ডিকায়

8
ইনপুট ফর্ম্যাটটি কতটা নমনীয়? আমরা কি একটি স্পেস বা নিউলাইনের মতো আলাদা ডিলিমিটার বেছে নিতে পারি? স্ট্রিং কোট হতে পারে? আমরা কি চিঠিটি প্রথমে এবং দ্বিতীয় স্ট্রিংটি নিতে পারি? অক্ষরগুলি কি সর্বদা ছোট হাতের অক্ষর হবে? যদি তা না হয় তবে অন্য কোন চরিত্র দেখা দিতে পারে?
মার্টিন ইন্ডার

5
এটি সন্দেহজনকভাবে দেখতে একটি সি ইন্টারভিউ প্রশ্নের মত ...
কোয়ান্টিন

উত্তর:


18

পাইথ, 3 বাইট

/ww

উদাহরণ রান:

$ pyth -c '/ww'
sdhkfhjkkj
k
3

অবশ্যই, প্রথম ইনপুটটিতে ব্যবহারকারী কমপক্ষে 10 টিরও বেশি অক্ষর ইনপুট করতে পারে, তবে ব্যবহারকারী যখন অনুশীলনটি লঙ্ঘন করে তখন কী হয় তা নিয়ে আমাদের চিন্তা করার দরকার নেই।


মনে হচ্ছে এটি আর বৈধ নয়?
ভেন

ব্যাখ্যা দয়া করে?
মিল্কিওয়ে 90

@ মিল্কিওয়ে 90 আপনি কীভাবে এটি ব্যবহার করতে পারেন তা এখানে: অনলাইনে এটি ব্যবহার করে দেখুন! /দ্বিতীয় ইনপুট স্ট্রিংয়ের প্রথম ইনপুট স্ট্রিংয়ে কেবল উপস্থিতির সংখ্যা গণনা করে। wইনপুট একটি লাইন লাগে।
isaacg

@ আইস্যাকগ ওহ, আমি দেখছি ধন্যবাদ!
মিল্কিওয়ে 90

11

পাইথ - 3 বাইট

একই আকারের একটি পৃথক, কম সুস্পষ্ট, পাইথ উত্তর। এটি ইনপুট ধরে গণনা ভাঁজ করে।

/FQ

টেস্ট স্যুট




6

রেটিনা , 12 বাইট

(.)(?=.*\1$)

কেবলমাত্র একটি রেজেক্স যা কোনও অক্ষরের সাথে মেলে যা ইনপুটে শেষ অক্ষরের সমান (নিজে বাদে)। যখন একটি একক রেজেক্স দেওয়া হয়, রেটিনা কেবল ম্যাচের সংখ্যাটি দেয়।


বাহ, আমি এখানে আরএসএস দিয়ে সব ধরণের অভিনব জিনিস করার চেষ্টা করছি , এবং আপনি আমাকে লুক হেডস দিয়ে মারলেন। +1
kirbyfan64sos

4

ল্যাবরেথ , 32 29 27 24 বাইট

),}{)-
@ ,  +);__
!-`{:}

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

ব্যাখ্যা

কোডটি শুরু হয় ),}, যা স্ট্যাকের নীচে সেট করে 1, প্রথম অক্ষরটি পড়ে এবং ভবিষ্যতের ব্যবহারের জন্য সহায়ক স্ট্যাকের দিকে নিয়ে যায়। 1আমাদের কাউন্টার হতে হবে (1 অফসেট পরে বাতিল হয়ে যাবে এবং আইপি প্রয়োজনীয় পালাক্রমে নেওয়া জন্য প্রয়োজনীয়)।

আইপি এখন নীচে সন্ধানের স্ট্রিংয়ের প্রথম অক্ষরটি পড়তে পড়বে ,`সঠিক টার্নিং আচরণ পেতে আবার মানটি উপেক্ষিত হয়। আমরা STDIN- র অক্ষরগুলি পড়ার সময়, আইপি এই লুপটি অনুসরণ করবে:

  }{)-
  ,  +);__
  `{:}

{:}সঞ্চিত অক্ষর কোডের একটি অনুলিপি তৈরি করে এবং +এটি বর্তমান মানটিতে যুক্ত করে। যদি ফলাফলটি হয় 0(যেমন বর্তমানের চরিত্রটি আমরা সন্ধান করছি), আইপি সরাসরি এগিয়ে -চলেছে: খালি কাউন্টারের হাত থেকে মুক্তি পাওয়া যায় 0, )এটি {}কোনও অপ-বিকল্প নয়।

তবে এর পরে যদি ফলাফলটি +শূন্য হয় তবে আমরা বর্তমান চরিত্রটি গণনা করতে চাই না। সুতরাং আইপি পরিবর্তে ডান-টার্ন নেয়। এটি একটি মৃত-শেষ, যাতে কোডটি একবারে দুবার কার্যকর করা হয়, একবার এগিয়ে এবং একবার পিছনের দিকে। যে, এই ক্ষেত্রে আসল কোড হয়ে যায় );___;)+-){});কেবল সেই শূন্য-অবিশ্বাস্য পার্থক্য থেকে মুক্তি পেয়ে ___3 টি শূন্যকে ধাক্কা ;দেয় তবে সেগুলির মধ্যে একটি ত্যাগ করে। )দুটি দুটি শূন্যের +মধ্যে একটি বৃদ্ধি করে , তাদেরকে একটি একক করে যুক্ত করে 1, -কাউন্টার থেকে বিয়োগ করে এবং কাউন্টারকে বাড়িয়ে তোলে )। অন্য কথায়, আমরা একটি খুব বিস্তৃত নো-অপশন তৈরি করেছি।

আমরা যখন ইওএফ-তে আঘাত করি, তখন ,ধাক্কা দেয় -1, যা `রূপান্তরিত হয় 1এবং আইপি ডান-মোড় নেয়। কাউন্টার থেকে -বিয়োগ করে 1(প্রাথমিক অফসেট বাতিল করে)। !কাউন্টারটি মুদ্রণ করে এবং @প্রোগ্রামটি সমাপ্ত করে।


4

পাইথন 3, 29 বাইট

print(input().count(input()))

মেহ, এটা সহজ ছিল। ধরে নিই যে ইনপুট একটি দশ অক্ষরের স্ট্রিং।


4
তুমি আমাকে কপি করেছ! : ডি
ইসাএ্যাকগ

1
@ আইসএইচজি দুর্দান্ত মন কি একসাথে ভাবেন? ; ডি
বিটা ক্ষয়

আপনার যদি ইনপুট পড়ার প্রয়োজন না হয়, তবে f=lambda x,y:x.count(y)ছোট হবে না ? (দুঃখিত যদি এটি কাজ না করে, আমি মোবাইলে থাকি এবং চেক করতে পারি না)
কোলে

@ mbomb007 আমার ভুল, পরিষ্কার করার জন্য ধন্যবাদ।
কোলে

1
মুদ্রণের চারপাশে বন্ধনীগুলি সরিয়ে ফেললে আপনি একটি অক্ষর print input().count(input())বা a,b=input();print a.count(b)একই পরিমাণে বাঁচান
উইলিয়াম

4

স্নোম্যান 1.0.2 , 16 টি অক্ষর

~vgvgaSaLNdEtSsP

আশ্চর্যজনকভাবে সংক্ষিপ্ত। ব্যাখ্যা:

~      make all vars active (even though we only need two, we don't really care)
vgvg   get two lines of input
aS     split first line on second line
aL     length of the new array
NdE    decrement (because ex. "axbxc""x"aS -> ["a" "b" "c"] which is length 3)
tSsP   to-string and print

চমৎকার কাজ! আমি ভেবে দেখিনি যে স্নোম্যানে সংক্ষিপ্ত একটি সমাধান সম্ভব হবে।
অ্যালেক্স এ

4

সি ++ টেমপ্লেট-মেটাপ্রোগ্র্যামিং, 160 154 116 বাইট

শুধু গিগলসের জন্য।

এটিকে গলফ করার জন্য প্রাক্তন বার্টকে ধন্যবাদ!

template<int w,int x,int y,int...s>class A:A<w+(x==y),x,s...>{};A<0,'t','t','t','t','g','g','l','o','y','o','i',0>a;

ব্যবহার: টেমপ্লেট ইনস্ট্যান্সের প্রথম চরটি অনুসন্ধানের চরিত্র।

ঝাঁকুনি দিয়ে শেষ করুন -std = c ++ 11 -c -> ফলাফলটি ত্রুটি বার্তার শুরুতে।

Occurences.cpp:1:66: error: too few template arguments for class template 'A'
template<int w,char x,char y,char...s>class A{static const int a=A<w+((x==y)?1:0),x,s...>::a;};
                                                             ^
Occurences.cpp:1:66: note: in instantiation of template class 'A<3, 't', '\x00'>' requested here
template<int w,char x,char y,char...s>class A{static const int a=A<w+((x==y)?1:0),x,s...>::a;};

Gcc -std = c ++ 11 -c -> এর সাথে কমপ্লিট করুন > ফলাফলটি ত্রুটি বার্তার নীচে রয়েছে।

Occurences.cpp: In instantiation of ‘const int A<3, 't', '\000'>::a’:
Occurences.cpp:1:64:   recursively required from ‘const int A<1, 't', 't', 't', 'g', 'g', 'l', 'o', 'y', 'o', 'i', '\000'>::a’
Occurences.cpp:1:64:   required from ‘const int A<0, 't', 't', 't', 't', 'g', 'g', 'l', 'o', 'y', 'o', 'i', '\000'>::a’
Occurences.cpp:2:62:   required from here
Occurences.cpp:1:64: error: wrong number of template arguments (2, should be at least 3)

A < 3 , 't', '\ 000'> এবং A < 3 , 't', '\ x00'> অনুসন্ধান করুন

154 বাইট সংস্করণ

template<int w,char x,char y,char...s>class A{static const int a=A<w+(x==y),x,s...>::a;};                          
int a=A<0,'t','t','t','t','g','g','l','o','y','o','i','\0'>::a;

160 বাইট সংস্করণ:

template<int w,char x,char y,char...s>class A{static const int a=A<w+((x==y)?1:0),x,s...>::a;};                          
int a=A<0,'t','t','t','t','g','g','l','o','y','o','i','\0'>::a;

আপনি প্রায় 6 বাইট সংরক্ষণ করতে সংক্ষিপ্ত ((x==y)?1:0)করতে পারেন (x==y)(আমার মনে হয়))
kirbyfan64sos 21

ধন্যবাদ - এটি নিশ্চিত হতে চেয়েছিল যে এটি সংজ্ঞায়িত আচরণ, কারণ মান সম্পর্কে কী বলা হয়েছে তা সম্পর্কে আমি নিশ্চিত ছিলাম না bool করতে intরূপান্তর।
ওটোমো

এটি সংজ্ঞায়িত আচরণ।
kirbyfan64sos

হ্যাঁ, আমি এখন এটিও জানি। :) আপনাকে অনেক ধন্যবাদ. (আমি ভেবেছিলাম সম্ভবত এটি বাস্তবায়ন নির্ভর হবে))
ওটোমো

1
128 বাইট: এর enumপরিবর্তে বেনামে ব্যবহার করুন static const। বন্ধ করার 0পরিবর্তে ব্যবহার করুন '\0'intপরিবর্তে ব্যবহার করুন char। তাত্ক্ষণিকভাবে কিছুটা আলাদা ঘোষণা ব্যবহার করুন। সুপারফ্লুস নিউলাইন সরান। template<int w,int x,int y,int...s>class A{enum{a=A<w+(x==y),x,s...>::a};};A<0,'t','t','t','t','g','g','l','o','y','o','i',0>a;। জি ++ এবং ঝনঝন দিয়ে পরীক্ষা করা হয়েছে।
প্রাক্তন বার্ট


3

জাভাস্ক্রিপ্ট (ES6), 26 বাইট

(a,b)=>a.split(b).length-1

এই তাত্ক্ষণিক সমাধানটি একটি বেনামী ফাংশন সংজ্ঞায়িত করে। এটি ব্যবহার করতে, শুরুতে একটি পরিবর্তনশীল ঘোষণা যুক্ত করুন। চেষ্টা কর:

সম্পাদনা করুন: ওহ, আমি দেখতে পেয়েছি ইতিমধ্যে একটি খুব অনুরূপ সমাধান আছে। আমি আশা করি ঠিক আছে।



3

সি ++, 78 বাইট

int main(int,char**v){int c=0,i=0;while(i<10)v[1][i++]==*v[2]&&++c;return c;}

এভাবে কল করুন:

$ g++ -std=c++14 -O2 -Wall -pedantic -pthread main.cpp && ./a.out tttggloyoi t; echo $?
3

3

এলিমেন্ট , 23 বাইট

__);11'[)\
~="0 1@][+]`

নতুন লাইনটি প্রোগ্রামটির অংশ। আমি আসলে এটি একটি পরিবর্তনশীল নাম হিসাবে ব্যবহার করছি ।

এই প্রোগ্রামটি মূলত লক্ষ্য অক্ষরটিকে একটি চলকতে সঞ্চয় করে, বর্তমান স্ট্রিংটিকে স্ট্যাকের শীর্ষে রাখে এবং তারপরে "চপ, তুলনা এবং ফলাফলটিকে নীচে সরানো" প্রক্রিয়াটি লুপ করে শেষ পর্যন্ত ফলাফলগুলি যোগ করে।

ভেরিয়েবলের নাম হিসাবে নিউলাইনটি ইনপুটটির শেষে নতুন লাইনটি কেটে ফেলা এবং এটিতে সংরক্ষণ করে ব্যবহার করা থেকে আসে। কোডটির নতুন লাইনটি যেখানে আমি এটি থেকে পড়েছি।

ইনপুটটি এরকম:

qqqqwwweee
q

আউটপুট যেমন হয়

4

3

জুলিয়া, 26 25 বাইট

f(s,c)=endof(findin(s,c))

findinফাংশন প্রথম আর্গুমেন্ট যা দ্বিতীয় যুক্তি একটি ভেক্টর হিসাবে পাওয়া যায় এ সূচকের ফেরৎ। ভেক্টরের দৈর্ঘ্য সংঘটন সংখ্যা।

গ্লেন ওকে একটি বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে thanks


endofএর জায়গায় আপনাকে একটি বাইট সংরক্ষণ করবে length
গ্লেন ও

3

এপিএল, 7 3 বাইট

+/⍷

এটি একটি ফাংশন ট্রেন তৈরি করে। এটি শূন্যগুলির একটি ভেক্টর তৈরি করে এবং সূচকগুলির সাথে অনুরোধ করে যেখানে অক্ষরটি স্ট্রিংয়ে প্রদর্শিত হয় ( )। এরপরে ভেক্টরটির যোগফল দেওয়া হয় ( +/)।

কির্বিফ্যান 6464 এবং এনবিজেডকে 4 বাইট সংরক্ষণ করা!


এপিএল কি কির মতো কর্কশ? আমি মনে করি আপনি +/⍷তখনকার মতো কিছু করতে পারেন (আমি এপিএল জানি না, তাই আমি ভুল হতে পারি)।
kirbyfan64sos 21

@ kirbyfan64sos আমার জানা একমাত্র কারি খাবার তাই আমি নিশ্চিত নই। তবে আমি এটি খতিয়ে দেখব। পরামর্শের জন্য ধন্যবাদ!
অ্যালেক্স এ।

@ kirbyfan64sos হ্যাঁ, এটিকে একটি ফাংশন ট্রেন বলা হয় , সুতরাং + / indeed প্রকৃতপক্ষে কাজ করবে তবে আমরা যেহেতু একটি একক চর খুঁজছি, তাই এর পরিবর্তে = এর পরিবর্তে = ব্যবহার করা যেতে পারে ⍷
অ্যাডাম

3

পার্ল, 21 16 টি অক্ষর

(১৩ টি অক্ষরের কোড + 3 অক্ষর কমান্ড লাইন বিকল্প))

$_=0+s/$^I//g

নমুনা রান:

bash-4.3$ perl -it -pe '$_=0+s/$^I//g' <<< tttggloyoi
3

bash-4.3$ perl -io -pe '$_=0+s/$^I//g' <<< onomatopoe
4

bash-4.3$ perl -i5 -pe '$_=0+s/$^I//g' <<< 1234
0

সাথে ঝরঝরে কৌশল <>!
এইসুইটসআইপ্ল্যাকনট

-lআপনার echo -en 'onomatopoe\no' | perl -pe '$_=eval"y/".<>."//"'
ইনপুটটির

1
এবং আপনি আপনার perl -pe '$_+=s/${\<>}//g'
মোটটি

সেই রেফারেন্সিং ট্রিকটি অবিশ্বাস্য। আপনাকে ধন্যবাদ, @ThisSuitIsBlackNot।
manatwork

কেন +=দরকার? =ঠিক তেমন কাজ করে বলে মনে হচ্ছে (এবং কিছু অঙ্ক দিয়ে ইনপুট শুরু হওয়ার পরেও কাজ করা উচিত)।
প্রাক্তন বার্ট

3

পিএইচপি, 36 35 বাইট

<?=substr_count($argv[1],$argv[2]);


ব্যবহার:
দুটি আর্গুমেন্ট সহ স্ক্রিপ্ট কল করুন।
php script.php qwertzqwertz q

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

আপনি যদি বিশ্বব্যাপী ভেরিয়েবলগুলি নিবন্ধন করেন (কেবলমাত্র পিএইচপি 5.3 এবং নীচে কেবলমাত্র) আপনি 12 বাইট সংরক্ষণ করতে পারবেন ( মার্টিজনকে ধন্যবাদ )

<?=substr_count($a,$b);


ব্যবহার:
স্ক্রিপ্ট কল করুন এবং গ্লোবাল ভেরিয়েবল ঘোষণাphp script.php?a=qwertzqwertz&b=q


1
এক বাইট কম পাওয়ার জন্য আপনি কমা পরে কোনও স্থান সরিয়ে ফেলতে পারেন
ভয়েটকাস

1
যদি আপনার কাছে গ্লোবালগুলি নিবন্ধিত থাকে তবে আপনি 23 টি চর script.php?a=qwertzqwertz&b=qকরতে এবং করতে পারেন<?=substr_count($a,$b);
মার্তিজন

@ মার্তিজান ভাল ধারণা আপনাকে ধন্যবাদ!
জেরেঙ্ক

3

ডায়ালগ এপিএল , 3 বাইট

      +/=

অর্থাৎ "সমান বাইটের যোগফল"। উদাহরণ:

      f ← +/=
      'onomatopoe' f 'o'
4

বা শুধু

      'onomatopoe'(+/=)'o'
4

কে এবার এপিএলকে হারাবে না।

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


একবারে কয়েক ডজন পোস্ট সম্পাদনা করবেন না। আপনি পুরো পৃষ্ঠাকে পুরোপুরি বন্যা করছেন। যদি এমন অনেকগুলি পোস্টের সম্পাদনার প্রয়োজন হয় (যা মাঝেমধ্যে ঘটে থাকে, যেমন একটি নতুন ট্যাগ যুক্ত করা হয়), তবে সাধারণত একবারে কেবল তাদের 3 টি করেই কমপক্ষে 12 ঘন্টা অপেক্ষা করা ভাল তাই তারা সামনে থেকে নামতে পারে it's পাতা।
মার্টিন ইন্ডার

@ মার্টিনবাটনার হ্যাঁ, আমি তখন বুঝতে পারি নি। :-( নিয়মিত ব্যবহারকারীর কাছে "মাইনর এডিট" বিকল্প নেই ... আমি বুঝতে পারি যে এটি কেন সবার জন্য পাওয়া যায় না
অ্যাডাম

দুর্ভাগ্যক্রমে, এ জাতীয় কোনও বিকল্প নেই, এমনকি মডারেটরদের জন্যও নয়।
মার্টিন এন্ডার

3

টি-এসকিউএল, 99 40 বাইট

SELECT 11-LEN(REPLACE(s,c,'')+'x')FROM t

সরানো অক্ষরের সাথে ইনপুট স্ট্রিং এবং স্ট্রিংয়ের মধ্যে পার্থক্য কেবল। টেবিল টি থেকে ইনপুট নেয়

গণনা স্পেস সহ কোনও সমস্যা মুছে ফেলার জন্য এবং এসকিউএল-র বর্তমান গ্রহণযোগ্য ইনপুটগুলিকে বিবেচনায় রাখতে সম্পাদনা পরিবর্তন করা হয়েছে। সমস্ত পরিবর্তন এবং সঞ্চয় করার জন্য @ ব্র্যাডসকে ধন্যবাদ


আপনার সমস্ত স্ক্যাফোোল্ডিংয়ের প্রয়োজন হবে না, কেবল করুন SELECT LEN(s)-LEN(REPLACE(s,c,''))FROM t, যেখানে ক্ষেত্রগুলি এবং সহ t প্রাক-জনবহুল ইনপুট টেবিল রয়েছে । sc
ব্র্যাডিসি

অন্য নোটে, এই কোডটি A B C D ফাঁকা জায়গাগুলির মতো স্ট্রিংগুলির জন্য ভুল উত্তর দেয় (যদি আপনাকে স্থানগুলি গণনা করতে বলা হয়), যেহেতু LENপিছনের স্থানগুলি উপেক্ষা করে।
ব্র্যাডিসি

@ ব্র্যাডিসি আমার মনে হয় সেই সময়ে ফিরে আসার বিষয়গুলি কীভাবে গ্রহণযোগ্য ছিল, বিশেষত এসকিউএল-এর আশেপাশের নিয়মগুলি সীমাবদ্ধ এবং অস্পষ্ট ছিল। আমার spaceযখন একটু সময় হবে তখন আমি সমস্যাটি ঠিক করার দিকে নজর দেব
মিকিটি

আমি সাধারণত কেবল প্যাড করি এবং একটিকে বিয়োগ করি; SELECT 11-LEN(REPLACE(s,c,'')+'x')FROM t
এক্ষেত্রে

@ ব্র্যাডসি হ্যাঁ, এটি আবারও খুঁজছেন, নিশ্চিত হবেন না কেন আমি পরিবর্তনশীল দৈর্ঘ্যের জন্য অনুমতি দিই। পরিবর্তন করা।
মিকিটি


2

জে, 5 বাইট

+/@:=

আমি মনে করি যে এর জন্য জে একটি অন্তর্নির্মিত থাকতে পারে, তবে আমি এটির সন্ধান করতে পারি না - সক্রিয় জে ব্যবহারকারীদের মধ্যে কেউ আমাকে আলোকিত করতে পারে। সুতরাং পরিবর্তে এটি প্রথম =ইনপুটগুলিতে প্রযোজ্য , প্রতিটি অক্ষরটিকে 1অনুরোধকৃত বা 0অন্যথায় অনুরূপ হলে এটি রূপান্তরিত করে । তারপরে +/সেই তালিকার যোগফল গণনা করে।


2

ব্যাচ ফাইল, 121 বাইট

কারণ আমি একজন মাসোশিস্ট ...

SET c=0
SET e=_
SET t=%1%%e%
:l
SET a=%t:~0,1%
IF "%a%"=="%2" SET /A c+=1
SET t=%t:~1%
IF NOT "%t%"=="%e%" GOTO l
ECHO %c%

সতর্কতা: ধরে নেওয়া যায় যে _ইনপুট স্ট্রিংয়ে ঘটে না। যদি এটি হয় তবে ভেরিয়েবলটি eযথাযথভাবে সামঞ্জস্য করা দরকার।

এটি আমাদের কাউন্টার ভেরিয়েবল cএবং _আমাদের ইনপুট স্ট্রিংটিতে সংযোজন %1এবং সংলগ্ন স্ট্রিংটিতে সেট করার আগে স্ট্রিংয়ের সমাপ্তি চিহ্নিত করে t। তারপরে, আমরা লুপটি প্রবেশ :lকরলাম, আমরা একটি অস্থায়ী অক্ষর ভেরিয়েবলের aপ্রথম অক্ষর হিসাবে সেট করেছিলাম t, এটি আমাদের দ্বিতীয় ইনপুট স্ট্রিং %2এবং বর্ধনের সাথে cযদি সত্য হয়, তার সাথে মিলিত হয় কিনা তা পরীক্ষা করুন , তারপরে প্রথম অক্ষরটি ছাঁটাই করুন t। আমাদের শেষের লুপের শর্তটি tআমাদের শেষের স্ট্রিং সীমা নির্ধারণের বিরুদ্ধে পরীক্ষা করে এবং যদি তা না ঘটে তবে লুপগুলি ফিরে আসে। তারপরে আমরা echoআমাদের কাউন্টারটির মান বের করি।

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


2

সিজেম, 5 বাইট

ll/,(

ব্যাখ্যা

l      e# read x
 l     e# read y
  /    e# split x by y
   ,   e# count
    (  e# subtract one

2

পাওয়ারশেল, 32 বাইট

এক-চারজনের জন্য! এবং তারা সব একই দৈর্ঘ্য! :)

($args[0]-split$args[1]).Count-1

অথবা

param($a,$b)($a-split$b).Count-1

অন্যথা,

$args[0].Split($args[1]).Count-1

অথবা

param($a,$b)$a.Split($b).Count-1

প্রথম দুটি শৈলী ইনলাইন অপারেটর ব্যবহার করে -split, যখন দ্বিতীয় দুটি স্পষ্টভাবে প্রথম যুক্তিকে স্ট্রিং হিসাবে কাস্ট করে এবং .Split()স্ট্রিং-ভিত্তিক অপারেটর ব্যবহার করে । সমস্ত ক্ষেত্রে একটি অ্যারে ফিরে আসে, যেখানে আমাদের একের সাথে গণনা হ্রাস করতে হবে, যেহেতু আমরা দ্বিতীয় যুক্তির উপস্থিতিগুলির চেয়ে আরও একটি অ্যারে আইটেম ফিরে পাচ্ছি।

এই এক মজার মজার ছিল ...


2

জুলিয়া, 21 বাইট

f(s,c)=sum(i->c==i,s)

নোট করুন যে এটির জন্য cএকটি চর হওয়া দরকার , একটি একক-অক্ষরযুক্ত স্ট্রিং নয়। সুতরাং আপনি এটি হিসাবে ব্যবহার করুন f("test me",'e')(যা 2 টি প্রত্যাবর্তন করে) এবং না f("test me","e")(যা 0 প্রদান করে, কারণ 'e'!="e")।


2

> <> (ফিশ) , 30 বাইট

0&v
=?\ilb
=?\:@=&+&l1
n&/;

স্ট্রিং নেয়, তারপরে চরিত্রটি গণনা করে। ইনপুট পৃথক করা হয়নি (কমপক্ষে অনলাইন দোভাষীতে)। অনলাইন দোভাষীর সাথে এটি ব্যবহার করে দেখুন: http://fishlanguage.com আমি হাত বাইটগুলি গণনা করেছি, তাই আমি ভুল করছি কিনা তা আমাকে জানান।

ব্যাখ্যা

প্রথমে,> <> দ্বিমাত্রিক এবং এটি কোনও ;ত্রুটি বা আঘাত না হওয়া অবধি কোনও লাইন বা কলামটি লুপ করে । এর অর্থ এটি যদি বাম থেকে ডানদিকে অগ্রসর হয় (যেমন এটি কোনও প্রোগ্রামের শুরুতে হয়), এটি শেষের দিকে পৌঁছে এবং প্রোগ্রামটি বন্ধ করতে না সরানো বা বলা না হলে এটি লাইনটির চারপাশে মোড়ানো হবে। প্রতি লাইনে কিছু অক্ষর পুনরাবৃত্তি হবে কারণ পয়েন্টারের দিকের উপর নির্ভর করে তাদের বিভিন্ন ফাংশন রয়েছে এবং চতুর্থ লাইনে বিপরীত ক্রমে অক্ষর থাকবে কারণ পয়েন্টারটি ডানে বামে সরানো হয়।

প্রোগ্রামটির সংক্ষিপ্তসার নীচে সরবরাহ করা হয়েছে। এ লুক esolangs উপর> <> জন্য তালিকাভুক্ত করা নির্দেশাবলী কি প্রতিটি চরিত্র আছে দেখতে।

লাইন 1: 0&v

0&v -put 0 into the register and change direction to down-up

লাইন 2: =?\ilb

(যেখানে লাইন 1 পয়েন্টারকে তৃতীয় অক্ষর দিকে নিয়ে যায় সেখানে শুরু হয়)

\ -reflect the pointer and make it move left-right
i -read input
lb=?\ -reflect downwards if there are 11 values in the stack

লাইন 3: =?\:@=&+&l1

(তৃতীয় অক্ষর থেকে শুরু)

:@ -duplicate y and shift the stack e.g. ['x','y','y'] -> ['y','x','y']
=&+& -increment the register if the character popped from x = y
l1=?\ -reflect downwards if there is 1 value in the stack

লাইন 4: n&/;

(তৃতীয় অক্ষর থেকে শুরু)

/ -reflect right-left
&n; -print value of the register

2

রুবি, 22 20 বাইট

p gets.count(gets)-1

ডেমো: http://ideone.com/MEeTd2

-1আসলে কারণে যে getsআহরণ ইনপুট, প্লাস একটি newline অক্ষর। যুক্তি থেকে কোনও অক্ষর স্ট্রিংয়ের String#countক্ষেত্রে সংখ্যার বার হিসাবে রুবি তার গণনা করে ।

উদাহরণস্বরূপ, ইনপুট [ test\n, t\n] এর জন্য, tদু'বার ঘটে এবং \nএকবার হয় এবং এর বিয়োগ করা প্রয়োজন।


আপনি অপসারণ করতে পারেন $><< 4 বাইট এবং হ্রাস ।
ভাসু আদারী

@ ভাসুআদারি তবে আমার ফলাফলটি একরকম ছাপানো দরকার ...
ক্রিশ্চিয়ান লুপাস্কু

তুমি কি এটা করতে পার না? ->p gets.count(gets)-1
ভাসু আদারি

@ ভাসুআডারী আপনি ঠিক বলেছেন; এই মুহুর্তের জন্য আমি ভেবেছিলাম যে আউটপুটটির চারপাশে কুতোস রাখবে, তবে এটি সংখ্যাসূচক তাই ঠিক আছে। ধন্যবাদ!
ক্রিশ্চিয়ান লুপাস্কু


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