রাপুনজেল, রাপুনজেল, আপনার চুল নামিয়ে দিন!


20

বিবরণ

আমি অনুমান করি সবাই রাপুনজেল এবং রাজপুত্রের রূপকথার গল্প জানে। যারা না তাদের জন্য: এটি এখানে পড়ুন। তবে, রাপুনজেল সবেমাত্র চুল কাটেছে, তাই তার রাজকুমারকে উপরে উঠতে দেওয়া বেশি দিন নাও লাগতে পারে! সে খুব দু: খিত হতে পারে ..

চ্যালেঞ্জ

আপনার কাজটি এমন একটি ফাংশন লিখতে হবে যা রাপুনজেল তার চুল নীচে নামাতে বললে কী বলবে তা মূল্যায়ন করে: যখন তার চুল টাওয়ারের চেয়ে লম্বা বা সমান হয় তখন একটি অতিরিক্ত মিটার (সুরক্ষা নির্দেশিকা) হয়, সে হয়ে যায় ভিউরি খুশি এবং বলে Aaaah!, এর সংখ্যার সাথে aএকই রকম length of her hair - height of the tower। তা না হলে, তার চুল যথেষ্ট দৈর্ঘ্য নেই এবং তিনি চিৎকার করে কাঁদতে শুরু হয়: Booho!, যেখানে oআগে গুলি hসমান দুই-তৃতীয়াংশ height of the tower - length of her hair, আর oজ পর গুলি বাকি হচ্ছে। অবশ্যই oএর পরে Bগুলিগুলির সংখ্যা অবশ্যই গোল হবে, সুতরাং আপনি যদি 2.6পাবেন তবে 3 oটি হবে এবং অন্যগুলি অবশ্যই তার পরে হবেh

ইনপুট / আউটপুট

আপনাকে আর্গুমেন্ট হিসাবে একটি নাল হিসাবে একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া হবে, একটি তালিকা হিসাবে বা দুটি একক সংখ্যা হিসাবে, আপনি এটি ক্রমটি সবচেয়ে সুবিধাজনক বলে মনে করেন, তবে আপনাকে অবশ্যই আদেশ করতে হবে যে আপনি সেটিকে কীভাবে নিচ্ছেন। আউটপুট হিসাবে, রাপুনজেল কী বলবে তা মুদ্রণ করুন।

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

পরীক্ষার ক্ষেত্রে, প্রথম সংখ্যাটি চুলের দৈর্ঘ্য হবে।

0, 0 -> 'Bh!' (probably a dry sob..)
2, 1 -> 'Aah!'
1, 2 -> 'Boh!'
1, 4 -> 'Booho!'
4, 1 -> 'Aaaah!'
2, 4 -> 'Boho!'

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর!


5
তো টাওয়ারের উচ্চতা থাকলে সে নামতে পারবে না 0? বিটিডাব্লু, ধনাত্মক পূর্ণসংখ্যা (নাল সহ) == _ন-নেগেটিভ পূর্ণসংখ্যার :)
স্টিভি গ্রিফিন

2
আমি এটি আপনার প্রথম পোস্টে করতে চেয়েছিলাম, তবে আমি আপনাকে স্যান্ডবক্স সম্পর্কে বলতে চাই , যেখানে আপনি মুখ্য পোস্ট দেওয়ার আগে প্রতিক্রিয়া জানাতে চ্যালেঞ্জগুলি পোস্ট করতে পারেন। এটি বেশ আকর্ষণীয় চ্যালেঞ্জের মতো বলে মনে হচ্ছে তবে লোকেরা তা বহন করতে পারে।
কায়ার্ড কইনিরিংহিংহ

4
@ স্টেভি গ্রিফিন ইয়েপ, ধরে নিচ্ছেন যে তার চুলের দৈর্ঘ্য খুব 0বেশি। তবুও, তাকে উইন্ডো থেকে বেরিয়ে আসতে হবে, এবং সুরক্ষার জন্য বিধিনিষেধগুলি এখানেও প্রযোজ্য! যদি সে নিজেকে ভাঙা গলা পেলে সে তাকে বিয়ে করতে পারে এমন কোনও উপায় নেই।
রেসার 290

উত্তর:


5

জেলি ,  43 41 40 38 34 33 33 32  31 বাইট

এর চেয়ে আরও ছোট একটি উপায় আছে সম্ভবত ! ? ... এটা বেশ কিছু গল্ফিং ছিল!

‘:3;ạ¥⁸4ẋ+;€⁹¦7Ṛṭ;8ị“øŻPLC»
ạç>

ফলাফল মুদ্রণ একটি সম্পূর্ণ প্রোগ্রাম।

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

কিভাবে?

‘:3;ạ¥⁸4ẋ+;€⁹¦7Ṛṭ;8ị“øŻPLC» - Link 1: number, abs(hair-tower); number, (hair > tower)?
‘                           - increment -> abs(hair-tower)+1
 :3                         - integer divide by 3 -> (abs(hair-tower)+1)//3
                            -   ...the remainder amount after removing 2/3 rounded
      ⁸                     - chain's left argument, abs(hair-tower)
     ¥                      - last two links as a dyad:
    _                       -   subtract (yields the 2/3 rounded amount)
   ;                        - concatenate
       4ẋ                   - repeat 4 (vectorises) (i.e. [[4,4,...],[4,...]])
         +                  - add (hair > tower)? (vectorises) (i.e. 4s->5s if so)
             ¦              - sparse application:
          ;€  7             - of:  concatenate €ach with a 7
            ⁹               - to indexes: chain's right argument, (hair-tower)?
               Ṛ            - reverse the list
                ṭ           - tack (hair-tower)?
                 ;8         - concatenate an 8
                    “øŻPLC» - compression of the word "Abroach" & the string "!B"
                   ị        - index into "Abroach!B" (1-indexed & modular, so 0->B)
                            - implicit (smashed) print

ạç> - Main link: number, hair; number, tower
ạ   - absolute difference -> abs(hair-tower)
  > - greater than? -> (hair > tower)? (1 if so, else 0)
 ç  - call the last link (1) as a dyad

* মোনাডিক লিঙ্ক হিসাবে এটি অক্ষরের একটি তালিকা এবং অক্ষরের তালিকার উদাহরণ দেয় ['B', [['o', 'o', 'h'], ['o']], '!']যেমন একটি সম্পূর্ণ প্রোগ্রাম হিসাবে অন্তর্নিহিত মুদ্রণটি এইটিকে টুটিয়ে দেয় egBooho!



হ্যাঁ, আমি AL€œs3শূন্য ত্রুটি দ্বারা ডিভ ব্যবহারের ধারণাটি পেয়েছিলাম এবং তারপরে আমি লম্বা কোডটির সাথে সম্বোধন করার পরেও আমার সমান দৈর্ঘ্যের ক্ষেত্রে বিশেষ ক্ষেত্রে থাকা দরকার। আমি ভেবেছিলাম আমি আজ অন্যভাবে চেষ্টা করব এবং বাস্তবায়ন করবো, তবে দেখে মনে হচ্ছে আপনি ইতিমধ্যে করেছিলেন।
জোনাথন অ্যালান

... মনে রাখবেন আমি 25-30 বাইটগুলি ভাবছিলাম :)
জোনাথন অ্যালান


4

05AB1E , 38 35 32 বাইট

ইনপুট অর্ডার: length of hair,height of tower

‹i¹α'a×"Aÿh!"ë¹-x‚>3÷R'o×'hý…Bÿ!

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

ব্যাখ্যা

‹i                                  # if h < l
  ¹α                                # push absolute difference of h and l
    'a×                             # repeat "a" that many times
       "Aÿh!"                       # interpolate between "A" and "h!"
 ë                                  # else 
  ¹-                                # push h-l
    x‚                              # pair with its double
      >3÷                           # increment and integer divide by 3
         R                          # reverse the list
          'o×                       # for each, repeat "o" that many times
             'hý                    # merge the o's on "h"
                …Bÿ!                # interpolate between "B" and "!"

আপনি 3টিআইওতে দেখানো একটি ভুলে গেছেন বলে মনে হয় ।
এরিক আউটগল্ফার

@ এরিকথ আউটগল্ফার: জানানোর জন্য ধন্যবাদ।
কোডটির

ওহ, এবং আপনার ব্যাখ্যা সহ আপনার ব্যবধানে সমস্যা রয়েছে।
এরিক আউটগল্ফার

@ এরিকথ আউটগল্ফার: আমি এটি দেখছি না। যদি আপনি এই সত্যটি বোঝাতে চান যে তারা 2 টি তির্যক রেখায় রয়েছে, তবে এটি ব্যবহারের অনুভূমিক স্থান হ্রাস করার জন্য ইচ্ছাকৃতভাবে পৃথকীকরণ। অন্য কিছু থাকলে অবশ্যই আমাকে অন্ধ হতে হবে।
এমিগানা


4

জাভাস্ক্রিপ্ট, 105 97 বাইট

ওকে 7 বাইট বাঁচাতে সাহায্য করার জন্য ধন্যবাদ!

p=(t,s)=>(s||"o").repeat(t)
l=>h=>(d=l-h,o=d/3-.5|0,l>h?`A${p(d,"a")}h`:`B${p(o-d)}h`+p(-o))+"!"

একটি বেনামে কারিং ফাংশন সংজ্ঞায়িত করে। মত ব্যবহার করুনf(length)(height)

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


মনে হচ্ছে না এর জন্য কাজ করছে f(1)(4)। এর সাথে প্রতিস্থাপন p(o+d)করা p(-o-d)এটি ঠিক করতে পারে। এছাড়াও আপনি o=-d*2/3+.5|07 বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন ।
ওকি

@ ওকি যে ত্রুটিটি নির্দেশ করে এবং আমাকে আরও ছোট করে দেখানোর জন্য ধন্যবাদ!
ড্যানইম্যান

p=(t,s='o')=>s.repeat(t)
tsh

2

পিএইচপি> = 7.1, 111 বাইট

[,$h,$t]=$argv;echo BA[$b=$h>$t],($r=str_repeat)(oa[$b],$c=round(($a=abs($h-$t))*($b?:2/3))),h,$r(o,$a-$c),"!";

পিএইচপি স্যান্ডবক্স অনলাইন


আর্গুমেন্ট অর্ডার 1. চুল 2. টাওয়ার?
রেসার 290

@ রেসার ২৯০ হ্যাঁ hair এইচ চুল $ টি টাওয়ার
জার্গ হালসারম্যান

2

জেলি , 32 বাইট

_‘”aẋŒt;⁾h!ɓ_÷1.,3+.”oẋ“Bh!”żð>?

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

-1 জনাথন অ্যালানকে ধন্যবাদ ।

শুধুমাত্র পুরো প্রোগ্রাম হিসাবে কাজ করে।

যুক্তিগুলি ক্রমযুক্ত: চুল, টাওয়ার


প্রতিস্থাপন দ্বারা একটি বাইট সংরক্ষণ ær0সঙ্গে+.
জনাথন অ্যালান

@ জোনাথান অ্যালান ওহ এটি কার্যকরভাবে কাজ করে। (জঘন্য দ্বি-বাইট
বিল্টিন

0

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

g(h,t)=h>t?string("A","a"^(h-t),"h!"):string("B","o"^round(Int,(t-h)*2/3),"h","o"^round(Int,(t-h)/3))

ফাংশন আর্গুমেন্ট অনুক্রমে নেয়া হয় length of Hair, height of Tower



0

জেলি , 84 76 বাইট

এটি আসলেই বরং দীর্ঘ, তবে এটি পোস্ট না করার জন্য আমি খুব বেশি সময় ব্যয় করেছি। দুটি পূর্ণসংখ্যার যুক্তি গ্রহণ করে:

  1. চুল দৈর্ঘ্য
  2. টাওয়ার দৈর্ঘ্য

এটিকে গল্ফ করার বিষয়ে কোনও পরামর্শই প্রশংসিত হবে।

³>⁴×111ð;ø³>⁴¬×97
97ðxø³ạ⁴
111ðxø¢L÷3×⁸ær0:1
2Çṭ2£“h”ṭµ1ÇṭµFḟ1£
>¬+65¥;¢;33Ọ

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


ঠিক আছে, ইতিমধ্যে একটি আরও খাটো জেলি উত্তর রয়েছে
সিউর

0

আর, 117 বাইট

x=diff(scan());cat(`if`(x>0,paste0("A",rep("a",x),"h!"),paste0("B",rep("o",F<-round(-2*x/3)),"h",rep("o",-x-F),"!")))

কিছুটা দীর্ঘ, বেশ নিশ্চিত যে এটিকে নিচে নামানো যেতে পারে। ক্রমে STDIN থেকে ইনপুট নেয় Tower, Hair


আহ ওহ; এটি আসলে 1 4
জিউসেপ


0

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

lambda h,t:("BA"+(abs(h-t)*2+1)/3*"oa"+"h"+(abs(h-t)+1)/3*"ao"+"h!!")[h>t::2]

চুলের দৈর্ঘ্য, hএবং টাওয়ারের উচ্চতা নেওয়া tএবং একটি স্ট্রিং ফিরিয়ে দেওয়া একটি নামহীন ফাংশন ।

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

এর সাথে শুরু করে একটি স্ট্রিং তৈরি করে BA, তারপরে oaপুনরাবৃত্ত স্ট্রিংয়ের দুটি তৃতীয়াংশের hপরে, একক এবং তারপরে অবশিষ্ট পরিমাণ aoপুনরাবৃত্তি করে এবং অবশেষে h!!। প্রত্যাবর্তনের মানটি তখন প্রতিটি দ্বিতীয় অক্ষর হয় হয় Bঅথবা Aস্লাইস নোটেশনের মাধ্যমে শুরু হয় [h>t::2]


0

পার্ল, 107 বাইট

প্রথম চুলের দৈর্ঘ্য নেয়, টাওয়ারের দৈর্ঘ্য দ্বিতীয়।

sub b{(($c=$_[0]-$_[1])>0?'A'.'a'x--$c.'h':do{$o=int(2/3*($c*=-1)+.5);'B'.('o'x$o).'h'.('o'x($c-$o))}).'!'}

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