বার্নার্ডিনো অপরিশোধিত ডলার শব্দ চিহ্নিত করে


47

সংজ্ঞা

একটি ডলার শব্দ, একটি শব্দ যেখানে যখন তার চিঠির প্রতিটি এক পয়সাও মূল্য দেওয়া হয় একটি = থেকে Z = 26 থেকে 1, ও অক্ষর সংকলিত হয়, ফলে 100 হয় এখানে CodeReview উপর একটি উদাহরণ, এবং এখানে একটি তালিকা রয়েছে ডলারের শব্দের মধ্যে আমি অনলাইনে পেয়েছি।

ইনপুট

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

আউটপুট

যদি ইনপুটটি ডলারের শব্দের হয় তবে সত্যবাদী মানটি আউটপুট করে এবং যদি এটি হয় না তবে একটি মিথ্যা মান।

পরীক্ষার মামলা

Truthy:

buzzy
boycott
identifies
adiabatically
ttttt

Falsey:

zzz
zzzzzzz
abcdefghiljjjzz
tttt
basic

এটি কোড-গল্ফ, তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর! স্ট্যান্ডার্ড ফাঁক এবং বিধি প্রযোজ্য। টাই প্রথম পোস্টারে যায়।


20
শিরোনামটিতে ডলার শব্দ রয়েছে, দুঃখিত যদি এটি আপনাকে ফেলে দেয় তবে দুঃখিত।
স্টিফেন

উত্তর:


7

জিএস 2 , 6 বাইট

▲1Θd←q

ইনপুট অবশ্যই বড়হাতে থাকতে হবে।

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

কিভাবে এটা কাজ করে

  Θ       Combine the previous two tokens into a block and map it over the input.
▲             Push 64.
 1            Subtract 64 from the character on the stack.
   d      Take the sum of the resulting character array.
    ←     Push 100.
     q    Compare the two items on the stack for equality.


12

05 এ বি 1 ই , 8 বাইট

কোড:

Ç96-O4bQ

সিপি -1222 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

Ç          # Convert the string into a list of character codes
 96-       # Subtract 96 of each element
    O      # Take the sum
     4b    # Push 100 (4 in binary)
       Q   # Check if equal

2
Tnখুব কাজ করে: পি
ম্যাজিক অক্টোপাস উরান

Ç4+OTn%0Qআমার কাছে অন্য ধারণা ছিল, তবে এটি আরও খারাপ।
ম্যাজিক অক্টোপাস উরন

11

পার্ল 6 , 21 বাইট

{100==[+] .ords X%32}

চেষ্টা করে দেখুন

বিকল্প:

{Ⅽ==[+] .ords X%32}

চেষ্টা করে দেখুন

লক্ষ্য করুন হয় ROMAN NUMERAL ONE HUNDREDএর ... 100 একটি unival সঙ্গে U + এ 216D
কোনটি সঙ্কেতাক্ষরে লিখা 3 বাইট লাগে।

সম্প্রসারিত:

{  # bare block lambda with implicit parameter $_

  100     # is 100
  ==      # equal to
  [+]     # the sum of the following

    .ords # the ordinals of the input (implicit method call on $_)
    X[%]  # crossed using the modulus operator
    32    # with 32 to get 65..90 or 97..122 to become 1..26
}

11

এমএটিএল , 8 বাইট

96-s100=

ছোট হাতের ইনপুট ব্যবহার করে।

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

ব্যাখ্যা

কোডটি যতটা পঠনযোগ্য ততই পঠনযোগ্য:

96-   % Implicitly input string. Subtract 96 from each char interpreted as ASCII code
s     % Sum of array
100=  % Does it equal 100? Implicitly display

7

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

রিটার্ন 0বা 1

let f =

w=>[...w].map(c=>p-=parseInt(c,36)-9,p=100)|!p

console.log(f('buzzy'))
console.log(f('qwerty'))


মজার বিষয় হল যখন আমি চেষ্টা করেছি reduceএবং পুনরাবৃত্তি করলাম তখন তারা দুজনেই 2 বাইট বেশি লম্বা হয়েছিল।
নীল

@ নীল প্রকৃতপক্ষে, reduce()অনুগ্রহের সময়কালের প্রথম কয়েক মিনিটের সময় এটি ব্যবহার করা হয়েছিল যখন আমি প্রাথমিকভাবে এটি পোস্ট করি।
আর্নৌল্ড

7

হাস্কেল , 32 বাইট

f s=sum[1|c<-s,_<-['a'..c]]==100

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

ধারণাটি হল তালিকার aপ্রতিটি চরিত্রের জন্য প্রদত্ত অক্ষর থেকে শুরু করে অক্ষরের একটি তালিকা তৈরি করা এবং মোট দৈর্ঘ্য 100 হয় তা পরীক্ষা করা।

অন্যান্য প্রচেষ্টা:

f s=sum[1|c<-s,_<-['a'..c]]==100

f s=sum[fromEnum c-96|c<-s]==100
f s=100==length((\c->['a'..c])=<<s)
(==100).length.(>>= \c->['a'..c])
(==100).length.(=<<)(\c->['a'..c])
(==100).length.(enumFromTo 'a'=<<)
f s=100==length(do c<-s;['a'..c])

খুব খারাপ enumFromToএত দীর্ঘ।


1
আপনি ঠিক বলেছেন যে দৈর্ঘ্যটি লজ্জাজনক (100==).length.(enumFromTo 'a' =<<)point বিন্দু মুক্ত নেসের এমন পরিষ্কার ব্যবহার
জুলিয়ান ওল্ফ

7

সি, 45 43 বাইট

দুটি বাইট সংরক্ষণ এবং সমাধান কেস-সংবেদনশীল করার জন্য @ নীলকে ধন্যবাদ!

n;f(char*s){for(n=100;*s;)n-=*s++&31;n=!n;}

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


দেখে মনে হচ্ছে আপনি n=0বিশ্বব্যাপী সেট করে এবং তারপরে লুপের প্রথম অনুচ্ছেদটি এড়িয়ে একটি বাইট সংরক্ষণ করতে পারবেন , না? সম্পাদনা: কিছু মনে করবেন না — আমি অনুমান করি যে এটি কেবল প্রথম কলের জন্যই কাজ করবে।
জুলিয়ান ওল্ফ

3
100 টি বাইট থেকে নিচে গণনা করা যাবে? এছাড়াও, &31আপনার কোড কেস সংবেদনশীল করতে কাজ করতে পারে।
নীল

কৌতূহলের বাইরে, কীভাবে n=!nকাজ করবে? আমি এটি nশূন্য কিনা তা পরীক্ষা করে বুঝতে পারি , কারণ কিছু পরীক্ষার ভিত্তিতে আমি !0রিটার্ন দেখতে পাই 1; !15প্রত্যাবর্তন 0; এবং পাশাপাশি !-15ফিরে আসে 0। কিন্তু কেন? কোন অপারেন্ডটি !সি হিসাবে থাকে যখন এটি ব্যবহার করে !integer?
কেভিন ক্রুইজসেন 12

@ কেভিন ক্রুইজসেন !কেবলমাত্র যৌক্তিক not। সি, 0মানে false, এবং অন্য কোনও পূর্ণসংখ্যার মান মানে true। সুতরাং !0 == 1, এবং !n == 0প্রত্যেকের জন্য n != 0
স্টেডিবক্স

@ স্টেডিবক্স আহ, আমি এই অংশটি জানতাম না: " এবং অন্য কোনও পূর্ণসংখ্যার মানটি সত্য ", তবে এটি সত্যই উপলব্ধি করে। আমি সর্বদা (ভুলভাবে) এটিকে 0=false; 1=trueপরিবর্তে হিসাবে ভেবেছিলাম , তাই আমার বিভ্রান্তি। উত্তরের জন্য ধন্যবাদ.
কেভিন ক্রুইজসেন

6

হাস্কেল , 32 বাইট

f w=sum[fromEnum c-96|c<-w]==100

এটি ছোট হাতের ইনপুটটির জন্য কাজ করে। বড় হাতের জন্য s/96/64/,। মিশ্র-কেস সমর্থন একগুচ্ছ বাইট যোগ করবে।


6

গণিত, 23 বাইট

100==Tr@LetterNumber@#&

বিশুদ্ধ ফাংশন ইনপুট, কেস-অবশ, এবং ফিরে যেমন একটি স্ট্রিং (অথবা চিঠির একটি অ্যারে) গ্রহণ Trueবা False। এখানে Trকেবল চিঠি-সংখ্যাগুলি একসাথে যুক্ত করা হয়েছে; অন্য সব কিছু স্ব-বর্ণনামূলক।


6

জেলি , 9 7? * 8 বাইট

ɠO%32S⁼³

সম্পূর্ণ প্রোগ্রাম, ইনপুটটি যদি ডলার শব্দ হয় তবে আউটপুট 1 বা যদি না হয় তবে 0।

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

কিভাবে?

ɠO%32S⁼³ - Main link
ɠ        - read a line of input from STDIN
 O       - cast to ordinals
  %32    - mod 32 (vectorises) (-3*32=96 from lowercase; -2*32=64 from uppercase)
     S   - sum
       ³ - literal: 100
      ⁼  - equal?

* এটি কি 7 বাইট হতে পারে?

এর সাথে ইনপুট ɠনেওয়ার একমাত্র কারণ ছিল ³3 য় কমান্ড লাইন ইনপুট (1 প্রোগ্রামের ইনপুট) এর পরিবর্তে আক্ষরিক 100 হিসাবে রাখা ।

এটি এড়ানোর একটি উপায় ȷ2হ'ল ডেনিসের নির্দেশ অনুসারে, কাঁচা আক্ষরিক রূপ যা 10 2 হয় তা ব্যবহার করে 100 তৈরি করা । এটি আরও 8 বাইট নিয়ে যায় O%32S=ȷ2, তবে এটি এখন একটি নামবিহীন মোনাদিক ফাংশন (পাশাপাশি 3 ডি আর্গুমেন্ট সহ পুরো প্রোগ্রাম হিসাবে অপারেটিং )।

যেহেতু, গল্ফে, কেউ ভেরিয়েবল বা সহায়তা ফাংশন তৈরি করতে পারে যা তারা যে প্রোগ্রামে থাকতে পারে তা সীমাবদ্ধ করে (ফাংশনটি পুনরায় ব্যবহারযোগ্য হওয়া বন্ধ না করে কেউ নামটি পুনরায় ব্যবহার করতে পারে না), সম্ভবত প্রোগ্রামটি কেবল এসটিডিআইএন থেকে ইনপুট নেওয়ার ক্ষেত্রে সীমাবদ্ধ হতে পারে এছাড়াও গ্রহণযোগ্য হবে, এক্ষেত্রে এখানে 7 বাইট O%32S=³একটি নামহীন ফাংশন হিসাবে গ্রহণযোগ্য হবে।


1
বিকল্পভাবে O%32S=ȷ2,। বড় হাতের এবং ছোট হাতের ইনপুট জন্য কাজ করে।
ডেনিস

@ ডেনিস এটি সীমান্তরেখা হতে পারে তবে O%32S⁼³এটি কোনও নামহীন, পুনরায় ব্যবহারযোগ্য ফাংশনটি সংজ্ঞায়িত করার কারণে এটি একটি বৈধ প্রবেশদ্বার হতে পারে না , যতক্ষণ না এটির বাকি প্রোগ্রাম যতক্ষণ না ইনপুটটির জন্য কমান্ড লাইন যুক্তি ব্যবহার করে না?
জোনাথন অ্যালান

হুম, আমি মনে করি এটি করা সম্ভব could সিতে গ্লোবাল ভেরিয়েবল ব্যবহার করা থেকে আলাদা নয়, উদাহরণস্বরূপ।
ডেনিস

6

অ্যালিস , 23 বাইট

/o!
\i@/e)q&w[?'`-+k3-n

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

ইনপুটটি ছোট আকারের হওয়া উচিত। 1ডলারের শব্দের জন্য মুদ্রণ এবং 0অন্যথায়।

ব্যাখ্যা

অ্যালিসের টেপ এবং কিছু উন্নত নিয়ন্ত্রণ প্রবাহ দেখানোর সময়। স্বতন্ত্রভাবে পূর্ণসংখ্যা এবং স্ট্রিংগুলির সাথে কাজ করার ক্ষেত্রে মোটামুটি ভাল থাকার পরেও অ্যালিসের ক এর কোনও বিল্ট-ইন নেই) একটি স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ করে, খ) অক্ষর এবং তাদের কোড পয়েন্টগুলির মধ্যে রূপান্তর। এর কারণ হ'ল এলিসের সমস্ত কমান্ডই মানচিত্রের পূর্ণসংখ্যা বা স্ট্রিংয়ের সাথে স্ট্রিং করে। তবে এগুলির উভয়েরই পূর্ণসংখ্যার সাথে ম্যাপিং স্ট্রিংগুলির প্রয়োজন হবে বা তদ্বিপরীত, সুতরাং এ্যালিসের কোনও একটি মোডে এটি খাপ খায় না।

যাইহোক, এটি স্ট্যাক ছাড়াও, এলিসের একটি টেপও রয়েছে এবং কার্ডিনাল এবং অর্ডিনাল মোড টেপের ডেটা বিভিন্ন উপায়ে ব্যাখ্যা করে

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

এই টেপটি উপরের উভয় ক্রিয়াকলাপের জন্য ব্যবহার করা যেতে পারে: একটি স্ট্রিং দৈর্ঘ্য পেতে, আমরা টেপটিকে অর্ডিনাল মোডে লিখি, কার্ডিনাল মোডে টার্মিনেটিং -1 অনুসন্ধান করি এবং টেপ মাথার অবস্থান পুনরুদ্ধার করি। অক্ষরগুলিকে তাদের কোড পয়েন্টগুলিতে রূপান্তর করতে, আমরা কেবল এটিকে কার্ডিনাল মোডে টেপ থেকে পড়ি।

এই সমাধানটিতে ব্যবহৃত অন্য দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য হ'ল রিটার্ন স্ট্যাক এবং একটি পুনরাবৃত্তকারী। অ্যালিসের একটি রিটার্ন স্ট্যাক থাকে যা জাম্প কমান্ডটি ব্যবহার করার সময় সাধারণত ভরাট হয় jএবং যা দিয়ে আপনি পিছনে পিছনে যেতে কোনও ঠিকানা পপ করতে পারেন k। তবে এটির সাথে বর্তমানের ঠিকানাটি কোথাও না লাফিয়ে রিটার্ন স্ট্যাকের দিকে ধাক্কা দেওয়া সম্ভব w। যদি আমরা পুনরাবৃত্তি কমান্ডের wসাথে একত্রিত হই , আমরা বর্তমান ঠিকানাটিকে রিটার্ন স্ট্যাকের সাথে n বারে ঠেলে দিতে পারি । এখন প্রতিবার পৌঁছানোর পরে , একটি অনুলিপি রিটার্ন স্ট্যাকের পপ আপ হয়ে যায় এবং আমরা এর থেকে অন্য পুনরাবৃত্তিটি সম্পাদন করি (এর পরে সেল শুরু করে, কারণ আইপি অন্য কমান্ড কার্যকর করার আগে চালিত করে)। যখন ফিরতি স্ট্যাক খালি হয়ে যায়,&kwkকিছুতেই কিছু করে না এবং আইপি সহজেই এর মধ্য দিয়ে যায়। সুতরাং &w...kএকটি পূর্ণসংখ্যা n পপ করে এবং তারপরে ... n + 1 বার চালিত করে , যা আমাদেরকে একটি সাধারণ forলুপটি প্রকাশ করার জন্য একটি খুব সংক্ষিপ্ত উপায় দেয় ।

কোড নিজেই ...

/     Reflect to SE. Switch to Ordinal.
i     Read the input word as a string.
      Bounce off bottom boundary, move NE.
!     Store the input word on the tape.
      Bounce off top boundary, move SE.
/     Reflect to E. Switch to Cardinal.
e     Push -1.
)     Seek right on the tape for a -1, which finds the -1 terminating
      the input word.
q     Push the tape head's position, which gives us the string length N.
&w    Repeat this loop n+1 times (see above for an explanation)...
  [     Move the tape head left by one cell.
  ?     Retrieve the code point of the character in that cell.
  '`    Push 96.
  -     Subtract it from the code point to convert the letters to 1...26.
  +     Add the result to a running total. This total is initialised to 
        zero, because in Cardinal mode, the stack is implicitly filled with
        an infinite amount of zeros at the bottom.
k    End of loop.
     Note that the above loop ran once more than we have characters in the
     string. This is actually really convenient, because it means that we've
     added a "-1 character" to the running total. After subtracting 96 to
     convert it to its "letter value" this gives 97. So dollar words will
     actually result in 100 - 97 = 3, which we can check against for one
     byte less than for equality with 100.
3-   Subtract 3 to give 0 for dollar words.
n    Logical NOT. Turns 0 (dollar words) into 1 and everything else into 0.
     The IP wraps around to the beginning of the first line.
\    Reflect to NE. Switch to Ordinal.
o    Implicitly convert the result to a string and print it.
     Bounce off top boundary, move SE.
@    Terminate the program.

নিস! আমি আমার প্রথম
চেষ্টাটি

6

আর, 55 54 বাইট

function(x)sum(match(el(strsplit(x,"")),letters))==100

-1 বাইট বিএলটি ধন্যবাদ

  • প্রয়োজনীয় গণনা করে এমন একটি ফাংশন প্রদান করে, যা প্রত্যাবর্তন করবে TRUEএবং FALSEযেমনটি প্রত্যাশা করবে।

  • লোয়ারকেস হিসাবে ইনপুট লাগে; শুধুমাত্র থেকে একটি সুইচ হবে lettersথেকে LETTERSসব বড় হাতের জন্য


1
function(x)sum(match(el(strsplit(x,"")),letters))==100একটি বাইট সংরক্ষণ করে।
বিএলটি

6

রুবি, 25 বাইট

->s{s.sum-s.size*64==100}

বড় হাতের জন্য কাজ করে।

আমি আরও কয়েকটি জটিল রুবি এন্ট্রি দেখতে পাচ্ছি, তবে এটি সত্যই সহজ। s.sumইনপুট স্ট্রিংয়ের এএসসিআইআই কোড যুক্ত করে এবং এর থেকে আমরা স্ট্রিংয়ের দৈর্ঘ্যের 64 গুণ বিয়োগ করি।

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

f=->s{s.sum-s.size*64==100}

puts f["ADIABATICALLY"]
puts f["ZZZ"]

এটি কেবল রুবি ২.৪-তে কাজ করে এবং বর্তমানে টিআইও
জিবি

1
@ জিবি মন্তব্যটির জন্য ধন্যবাদ তবে আমি ২.২..6 চালিয়ে যাচ্ছি এবং এটি আমার পক্ষে ভাল কাজ করে। বৈশিষ্ট্যটি 1.9.3 থেকে নথিভুক্ত করা হয়েছে। এটি TIO.run এবং Ideone.com এ আমার জন্যও কাজ করে।
স্তর নদী সেন্ট

আপনি ঠিক বলেছেন, আমি ভেবেছিলাম এটি অ্যারে # রাশির সমান, যা ২.৪
জিবি

প্রকৃতপক্ষে, এটি ASCII মানগুলির যোগফল নয়, সংজ্ঞাটি "str এর অক্ষরের একটি বেসিক এন-বিট চেকসাম প্রদান করে"। এটি অবশ্যই এই ক্ষেত্রে কাজ করে।
জিবি


5

05 এ বি 1 ই , 9 বাইট

5bIvAyk>-

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

ব্যাখ্যা

যেহেতু 1 হ'ল একমাত্র সত্যবাদী মান 05AB1E এ আমরা 100 এর সাথে তুলনা করে বিয়োগ ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারি ।

5b         # convert 5 to binary (results in 101)
  Iv       # for each letter in input word
    Ayk    # get the index of the letter in the alphabet
       >   # increment
        -  # subtract from total

5

পার্ল 5 , 30 বাইট

-1 বাইট ধন্যবাদ @ নিলকে ( 31&পরিবর্তে -96+) ধন্যবাদ ।

29 বাইট কোড + -pপতাকা।

$@+=31&ord for/./g;$_=$@==100

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


আপনি কি 31&ordপরিবর্তে ব্যবহার করতে পারেন ?
নীল

@ নীল হুম ... আমি সবসময় এই -96+জাতীয় জিনিসগুলির জন্য ব্যবহার করে আসছি .. এর জন্য অনেক ধন্যবাদ! (তবে এখন আমার মনে হচ্ছে আমার পুরানো পোস্টগুলি দিয়ে আমার ফিরে আসা উচিত এবং প্রতিস্থাপন করা উচিত -96+: x)
দাদা

প্রশ্নটি অ্যারেগুলিকে ইনপুট হিসাবে অনুমোদিত বলে উল্লেখ করে। এটি এইভাবে {$@+=31&ord for@_;$@==100}
সাবউটিন হিসাবে সম্মোহিত

আমি অনুমান করি এটি প্রসঙ্গে নির্ভর করে - এখানে আপনি এটি একটিতে ব্যবহার করছেন +=তবে অন্য ক্ষেত্রে আপনি প্রথম বন্ধনীতে সঞ্চয়টি অপচয় করতে পারেন।
নীল

@ msh210 চ্যালেঞ্জটি বলেছে your one language's text datatypes। অ্যারেগুলি পার্লের পাঠ্যের ডেটাটাইপ খুব কমই আছে ... (অন্যথায় এটি আসলে 1 বাইট সংরক্ষণ করতে পারত)
দাদা

5

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

$args|%{$s+=$_[0]-96};$s-eq100

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

অ্যারে হিসাবে ইনপুট, তবে আমি ভাবছি অক্ষরগুলি হ্যান্ডেল করার আরও ভাল উপায় আছে কিনা।

সম্পাদনাটি একটি সহজ জায়গা মিস করেছে তবে @ অ্যাডমবর্কবার্ক দয়া করে আমাকে জানান: পি এছাড়াও, চরিত্রগুলি পরিচালনা করার জন্য আরও ভাল উপায় ছিল!


হিয়া - একটি দম্পতি দ্রুত গল্ফ। আপনার চারপাশের ডান বন্ধনী প্রয়োজন হবে না [char]$_-96, এবং আপনি মধ্যে স্থান প্রয়োজন হবে না -eqএবং 100, আপনি 33. এছাড়াও আপনি কি করতে পারেন নিচে পেয়ে "$_"[0]পরিবর্তে [char]$_, আপনি 32 নিচে পেয়ে অনলাইনে চেষ্টা করুন!
অ্যাডমবর্কবর্ক 13

হয় "প্রায় $_প্রয়োজনীয়? এটি castালাই ছাড়াই কাজ করে বলে মনে হচ্ছে। ইতিমধ্যে ইনপুটটি স্ট্রিং অ্যারে হওয়ার কারণে এটি হতে পারে?
সিনুসয়েড

আহ, সত্যিই আপনি সঠিক। "এই বিশেষ উদাহরণস্বরূপ প্রয়োজন নেই।
অ্যাডমবার্কবার্ক

5

অ্যালিস , 28 18 বাইট

10 বাইট গল্ফ করার জন্য @ মার্টিনএেন্ডারকে ধন্যবাদ

=I.!'`-+?hn
>3-nO@

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

এই জমাটি @ মার্টিনএেন্ডারের উত্তরের চেয়ে আলাদা পদ্ধতি ব্যবহার করে।

এই জমা দেওয়ার 0x00কাজটি মিথ্যা এবং 0x01সত্যের জন্য ফলাফল।

সুতরাং এখানে এমন একটি সংস্করণ রয়েছে যা আউটপুট দেয় 0বা 1পরিবর্তে: চেষ্টা করে দেখুন!

ব্যাখ্যা

নীচের ব্যাখ্যাটি "দৃশ্যমান" সংস্করণের জন্য। উভয়ই একইরকম, প্রথম প্রোগ্রাম ব্যতীত শেষটি স্ট্রিংতে বা স্ট্রিংতে oরূপান্তর করে না (কারণ আমরা কার্ডিনাল মোডে আছি), তবে পরিবর্তে সংখ্যা এবং আউটপুটটিকে সেই কোড পয়েন্টে নিয়ে যায়।01

=                 Does nothing, but will be useful later on
I                 Read a character and push its code point onto the stack
                  If there is no more input, -1 is pushed instead
.                 Duplicate it
!                 Store it on the tape
#                 Skip the next command
o                 Gets skipped
'`                Push 96
-                 Subtract it from the character
+                 And add it to the total
?                 Load the number on the tape
h                 Increment it
n                 And negate it
                  For all characters that are read, ?hn results in 0,
                  but if -1 is pushed, then the result becomes 1

এর পরে আইপি বাম প্রান্তে প্রায় মোড়ানো হয় =। যদি স্ট্যাকের শীর্ষ মান হয় 0তবে আইপিটি তার অক্ষর দিয়ে চালিয়ে যায়, সমস্ত অক্ষরের মোট যোগফল বাড়িয়ে দেয়, একবার এটি ইনপুট দিয়ে সম্পন্ন করা হলে (স্ট্যাকের শীর্ষটি হবে 1), তারপরে আইপি ডানদিকে পরিণত হয় (90 ডিগ্রি ঘড়ির কাঁটার দিকে)।

একটি বিষয় লক্ষণীয় গুরুত্বপূর্ণ, ইনপুট শেষ হওয়ার পরে প্রথম লাইনের লুপটি পুনরাবৃত্তি হবে। এই বিয়োগ হবে 97( 96থেকে '`এবং -1মোট থেকে ইনপুট অভাব থেকে)।

>                Set the direction of the IP to East
3-               Subtract 3 from it (yields 0 if sum is 100, something else otherwise)
n                Negate it; Zero becomes 1, non-zero numbers become 0
/                Mirror; the IP gets redirected South-East
                 The IP reflects off the bottom and goes North-East
                 Now the program is in Ordinal mode, where numbers are automatically converted into strings when being used
o                Output the top of the stack as a string
                 IP reflects off the top and heads South-East
@                End the program

5

ট্যাক্সি , 1259 বাইট

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to Auctioneer School.Go to Auctioneer School:s 1 r 1 l 1 l.Pickup a passenger going to Chop Suey.0 is waiting at Starchild Numerology.Go to Starchild Numerology:s 1 l.Pickup a passenger going to Addition Alley.Go to Chop Suey:e 1 l 2 r 3 r 3 r.[a]Switch to plan "b" if no one is waiting.Pickup a passenger going to Charboil Grill.Go to Charboil Grill:n 1 l 3 l 3 l.Pickup a passenger going to What's The Difference.Go to Go More:e.64 is waiting at Starchild Numerology.Go to Starchild Numerology:e 2 r.Pickup a passenger going to What's The Difference.Go to What's The Difference:e 1 l 2 r 1 l.Pickup a passenger going to Addition Alley.Go to Addition Alley:e 2 r.Pickup a passenger going to Addition Alley.Go to Chop Suey:n 1 r 2 r.Switch to plan "a".[b]Go to Addition Alley:n 1 l 2 l.Pickup a passenger going to Equal's Corner.100 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan "c" if no one is waiting."TRUE" is waiting at Writer's Depot.[c]"FALSE" is waiting at Writer's Depot.Go to Writer's Depot:n 1 l 1 r.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.

লাইন ব্রেকগুলির সাথে, এটি দেখতে এটির মতো দেখাচ্ছে:

Go to Post Office:w 1 l 1 r 1 l.
Pickup a passenger going to Auctioneer School.
Go to Auctioneer School:s 1 r 1 l 1 l.
Pickup a passenger going to Chop Suey.
0 is waiting at Starchild Numerology.
Go to Starchild Numerology:s 1 l.
Pickup a passenger going to Addition Alley.
Go to Chop Suey:e 1 l 2 r 3 r 3 r.
[a]
Switch to plan "b" if no one is waiting.
Pickup a passenger going to Charboil Grill.
Go to Charboil Grill:n 1 l 3 l 3 l.
Pickup a passenger going to What's The Difference.
Go to Go More:e.
64 is waiting at Starchild Numerology.
Go to Starchild Numerology:e 2 r.
Pickup a passenger going to What's The Difference.
Go to What's The Difference:e 1 l 2 r 1 l.
Pickup a passenger going to Addition Alley.
Go to Addition Alley:e 2 r.
Pickup a passenger going to Addition Alley.
Go to Chop Suey:n 1 r 2 r.
Switch to plan "a".
[b]
Go to Addition Alley:n 1 l 2 l.
Pickup a passenger going to Equal's Corner.
100 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner:w 1 l.
Switch to plan "c" if no one is waiting.
TRUE is waiting at Writer's Depot.
[c]
FALSE is waiting at Writer's Depot.
Go to Writer's Depot:n 1 l 1 r.
Pickup a passenger going to Post Office.
Go to Post Office:n 1 r 2 r 1 l.

এটি আপার বা লোয়ারকেস গ্রহণ করে কারণ Auctioneer Schoolএগুলি সমস্তকে বড়হাতে রূপান্তরিত করে।
Chop Sueyএটিকে স্বতন্ত্র চরিত্রে বিভক্ত করে।
Charboil Grillঅক্ষরগুলিকে তাদের ASCII কোডে রূপান্তর করে।
আমরা একবারে একটি চরিত্র বাছাই করি, এএসসিআইআইতে রূপান্তর করি, 65 টি বিয়োগ করি এবং চলমান মোটে যোগ করি।
একবার আর কোনও অক্ষর না থাকলে মোটটি 100 টির সাথে তুলনা করুন।

TRUEডলার শব্দের FALSEজন্য এবং অন্য কিছুর জন্য ফেরত দেয় ।


1
"বিরক্তিকর" অপঠনযোগ্য কোড-গল্ফ ল্যাঙ্গেজের বিশ্বে <20 বাইটস উত্তর, আমি আপনার প্রবেশকে স্বাগত জানাই, দয়াবান অপরিচিত।
অলিভিয়ার ডুলাক

5

আইএ -32 মেশিন কোড, 21 বাইট

Hexdump:

33 c0 6a 64 5a 8a 01 41 24 1f 75 05 83 ea 01 d6
c3 2b d0 eb f0

সমাবেশ কোড:

    xor eax, eax;   initialize eax to 0
    push 100;       initialize edx
    pop edx;            to 100
myloop:
    mov al, [ecx];  load a byte
    inc ecx;        go to next byte
    and al, 31;     convert from letter to number
    jnz cont;       not done? continue

    ;               done:
    sub edx, 1;     check whether edx got to 0; result is in CF
    __emit(0xd6);   aka SALC - set al to CF
    ret
cont:
    sub edx, eax
    jmp myloop

100 থেকে 0 পর্যন্ত গণনাগুলি 0 এ পৌঁছলে সত্য (0xff) প্রত্যাবর্তন হয়; অন্যথায় মিথ্যা (0x00)।


5

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

100=+/17-⍨⎕AV⍳⍞

ডায়ালগ ক্লাসিক চরিত্র সেট ব্যবহার করে।

              ⍞  ⍝ string input
          ⎕AV⍳   ⍝ index in the character map
      17-⍨       ⍝ subtract 17 from each ('a' = 18)
    +/           ⍝ sum
100=             ⍝ equal to 100?

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

4

পাইথন , 38 বাইট

lambda s:sum(map(ord,s))==4-96*~len(s)

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

Ovs এর সমাধান হিসাবে একই দৈর্ঘ্য । বরং প্রতিটি 96 বিয়োগ চেয়ে ordমান, এই চেক যদি ordমোট সমান 100+96*len(s)। এটি একটি বাইট হিসাবে সংক্ষিপ্ত হিসাবে প্রকাশ করা হয় 4-96*~len(s), যা সমান 4-96*(-len(s)-1)


পাইথন 3 lambda s:sum(s.encode(),96*~len(s))==4এও কাজ করবে।
ডেনিস


4

রেটিনা , 47 23 বাইট

\w
!$&
}T`l`_l
^!{100}$

এটি অনলাইন চেষ্টা করুন! দ্রষ্টব্য: শিরোনাম ইনপুটকে ছোট করে ইনপুট করে এবং কথায় বিভক্ত করে; ফলাফল পৃথক লাইনে প্রদর্শিত হবে। সম্পাদনা: @ মার্টিনইেন্ডারে ধন্যবাদ অনেক বেশি বাইট সংরক্ষণ করা হয়েছে।


: এটা ধীরে ধীরে তাদের কমিয়ে দ্বারা চিঠি মান গনা যখন অক্ষর ঢোকাতে একটি অতি ছোট এর tio.run/nexus/...
মার্টিন Ender

4

অক্টাভা, 18 বাইট

@(x)sum(x-96)==100

বর্ণগুলির সংখ্যাসূচক মান পেতে 96ইনপুট স্ট্রিং x(লোয়ার কেস) থেকে বিয়োগ করে । নেয় sumএবং এর সাথে তুলনা করে 1001সত্যবাদী মামলাগুলির 0জন্য একটি যৌক্তিক এবং মিথ্যা মামলার জন্য একটি যৌক্তিক ফেরত দেয় ।

"ডলার শব্দের জন্য" মিথ্যা দেওয়া ঠিক এবং "ডলারবিহীন শব্দগুলির জন্য" সত্য হলে আমি একটি বাইট সংরক্ষণ করতে পারি।


4

জাপট , 13 12 10 বাইট

L¥U¬x_c %H

ব্যাখ্যা:

L¥ U¬x _c %H
L¥(U¬x(_c %H))
L¥(          )   // 100==
   U¬            //   Input split into a char array
     x(     )    //   The sum of:
       _         //     At each char:
        c        //       Get the char-code and
          %H     //       Mod 32

এটি অনলাইন পরীক্ষা!

12-বাইট:

L¥U¬mc m%H x

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

একটি অন্য কৌশল ব্যবহার করে অন্য 12-বাইট সমাধান

L¥U¬x@;CaX Ä

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


দারূন কাজ! আমি মনে করি আপনার সাথে প্রথম এক একটি বাইট সংরক্ষণ করতে পারবেন m%Hপরিবর্তে m-96সঙ্গে দ্বিতীয় (এটা এখন উভয় ক্ষেত্রেই উপর কাজ করব বোনাস!), এবং একL¥U¬x@;CaX Ä
ETHproductions

@ ইথ প্রডাকশন ধন্যবাদ! m%Hএকটি সুন্দর সন্ধান ছিল। x@একটি দুর্দান্ত ধারণা ছিল!
অলিভার

@ এথ প্রডাকশনগুলি এটিকে 10 বাইটে নামিয়েছে;)
অলিভার

3

রুবি (2.4+), 38 বাইট tes

লোয়ারকেসে ইনপুট নেয়। রুবি 2.4 এর দরকার Array#sumতাই এটি টিআইওতে চলবে না।

->a{a.chars.map{|c|c.ord-96}.sum==100}

2
String#bytesপরিবর্তে ব্যবহার করুন String#charsযাতে আপনাকে কল করতে হবে না c.ord
মূল্য কালি

এবং এর sumপরিবর্তে অ্যারেতে ব্যবহার করুনmap
জিবি

3

/// , 564 210 189 185 বাইট

/~/1\/\///4/11~3/41//6/33//2/66//5/22~a/~b/1~c/4~d/3~e/31~f/34~g/6~h/16~i/46~j/36~k/316~l/346~m/2~n/12~o/42~p/32~q/312~r/342~s/62~t/162~u/462~v/362~w/3162~x/3462~y/22~z/122~5555/0///1/0

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

যদি এটি "ডলার শব্দ" হয় তবে একটি 1 মুদ্রণ করে, অন্যথায় একটি "0" মুদ্রণ করে

ইনপুটটি নিম্নলিখিত: (ডানদিকে সমস্ত দিক থেকে স্ক্রোল করুন)

/~/1\/\///4/11~3/41//6/33//2/66//5/22~a/~b/1~c/4~d/3~e/31~f/34~g/6~h/16~i/46~j/36~k/316~l/346~m/2~n/12~o/42~p/32~q/312~r/342~s/62~t/162~u/462~v/362~w/3162~x/3462~y/22~z/122~5555/0//INPUT WORD HERE/1/0

প্রতিটি বর্ণকে তার মান দিয়ে অ্যানারিতে প্রতিস্থাপন করে কাজ করে, তারপরে একটি ইউনিারি ১০০ এর পরিবর্তে ০. দিয়ে এটি শব্দের মান ১ এর সাথে প্রতিস্থাপন করে। যদি শব্দের মান 0 হয়, তবে এটি একটি 1 মুদ্রণ করবে কারণ শেষে কোডটি, এটি একটি 0 প্রতিস্থাপন করছে। শব্দের মান যদি অন্য কিছু হয় তবে এটি কেবল 0 টি মুদ্রণ করবে।

গল্ফ কোডটিতে সাধারণ ঘটনা প্রতিস্থাপন হিসাবে ব্যবহার করে কাজ করে।


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