বিটলস থেকে "আরে জুড" মুদ্রণ করুন


27

আপনার কাজটি হ'ল একটি প্রোগ্রাম লিখুন যা দ্য বিটলসের গানে "আরে জুড" (© সনি / এটিভি সংগীত প্রকাশনা এলএলসি) থেকে লিরিক্স থেকে নেওয়া চারটি আয়াত ছাপে:

Hey Jude, don't make it bad\n
Take a sad song and make it better\n
Remember to let her into your heart\n
Then you can start to make it better\n
\n
Hey Jude, don't be afraid\n
You were made to go out and get her\n
The minute you let her under your skin\n
Then you begin to make it better\n
\n
Hey Jude, don't let me down\n
You have found her, now go and get her\n
Remember to let her into your heart\n
Then you can start to make it better\n
\n
Hey Jude, don't make it bad\n
Take a sad song and make it better\n
Remember to let her under your skin\n
Then you'll begin to make it\n
\n

কিন্তু

এই চারটি আয়াত তৈরির জন্য আপনাকে কেবলমাত্র যে ইনপুটটি ব্যবহার করতে দেওয়া হচ্ছে তা হ'ল টোকেনের তালিকা:

"Hey Jude, don't"
" make it bad"
" be afraid"
" let me down"
"Take a sad song and make it better"
"You"
" were made to go out"
" and get her"
" have found her, now go"
"Remember to"
"The minute you"
" let her"
" into your heart"
" under your skin"
"Then"
" you"
" can start"
"'ll"
" begin"
" to make it"
" better"

নোট করুন যে কয়েকটি টোকেনের আগে একটি স্থান রয়েছে এবং এটিতে এনক্লোজিং কোটগুলি টোকেনগুলির অংশ নয়। আপনি তালিকার জন্য যে কোনও ফর্ম্যাট ব্যবহার করতে এবং টোকেনগুলির ক্রম পুনরায় সাজানোর জন্য নির্দ্বিধায়।

আপনার উত্পন্ন আউটপুটটির উপরের চারটি আয়াতের সাথে হুবহু মিল থাকতে হবে। নোট যা \nনিউলাইনগুলির জন্য ব্যবহৃত হয় এবং প্রতিটি শ্লোকের পরে একটি অতিরিক্ত নিউলাইন যুক্ত করা হয়। আপনার আউটপুট বিপরীতে পরীক্ষা করতে আপনি এই ফাইলটি (MD5 4551829c84a370fc5e6eb1d5c854cbec:) ব্যবহার করতে পারেন ।

আয়াতগুলির কাঠামো বুঝতে আপনি নিম্নলিখিত রেলপথ চিত্রটি ব্যবহার করতে পারেন (প্রতিটি উপাদান একটি টোকেনকে উপস্থাপন করে): এখানে চিত্র বর্ণনা লিখুন

বাইটস মধ্যে সংক্ষিপ্ত কোড। শুভ গল্ফিং


47
যে অংশটি নাহ না, নাহ না, নাহ, না, সংকোচন করা সহজ হবে। ^^
আর্নৌল্ড


10
@Arnauld বাধ্যতামূলক xkcd xkcd.com/851_make_it_better
নাথানিয়েল

3
প্রতিটি লাইনের শেষে এই সমস্ত ব্যাকস্ল্যাশগুলিতে গান করা অবশ্যই কঠিন।
ট্যামস সেনজেল ​​20'18

উত্তর:


9

জেলি , 42 বাইট

;⁷“Ṙç€ṘḋḷŒø|Ṁ2kḤ⁽⁼SƁẒVṿẎj]ð⁵ṀƒƤ)÷Ƒ¦Ẋ½Iɠ⁻’ṃ

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

হার্ডকোডিং সংস্করণ।

ইনপুট:

["Hey Jude, don't", ' make it bad', 'Take a sad song and make it better', 'Remember to', ' let her', ' into your heart', 'Then', ' you', ' can start', ' to make it', ' better', ' be afraid', 'You', ' were made to go out', ' and get her', 'The minute you', ' under your skin', ' begin', ' let me down', ' have found her, now go', "'ll"]

17

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

a=>`01
4
9bc
efgjk

02
567
abd
efijk

03
587
9bc
efgjk

01
4
9bd
efhij

`.replace(/./g,n=>a[parseInt(n,36)])

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


বিকল্প সংস্করণ, 114 বাইট

কিছুটা ভাল সংকোচনের, তবে দুর্ভাগ্যক্রমে বৃহত্তর ডিকম্প্রেশন কোড দ্বারা নষ্ট হয়ে গেছে।

a=>`835fc3cbbd3
84db3db4bbdb3
85cd1cc3cbbd3
835fc4bbcb3

`.replace(/./g,n=>a[n='0x'+n,i=n%8&&n%8-2+i]+[`
`[n>>3]])

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


আমি জানতাম না যে mমাল্টি-লাইন টেম্পলেট লিটারালগুলির জন্য পতাকাটির প্রয়োজন নেই। মজাদার.
গ্রান্ট মিলার

7

রুবি + -p, 177 136 120 118 115 109 বাইট (সম্পূর্ণ প্রোগ্রাম)

$_="abvevjlmvopqtuvvacvfghvklnvopstuvvadvfihvjlmvopqtuvvabvevjlnvoprstv".gsub(/./){|c|(eval$_)[c.ord-97]||$/}

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

-41 বাইট: অ্যারে সূচক হিসাবে অক্ষর ব্যবহার করতে ভেরিয়েবল ব্যবহার থেকে স্যুইচ করুন

-16 বাইট: আরও সুবিধাজনক ইনপুট ফর্ম্যাটে স্যুইচ করুন

-1 বাইট: putsএবং এর মধ্যে কোনও জায়গার প্রয়োজন নেই"abv...

-1 বাইট: আক্ষরিক $/পরিবর্তে গ্লোবাল ব্যবহার করুন?\n

-3 বাইট: gsub(/./)পরিবর্তে ব্যবহার করুন.chars.map

-6 বাইট: সাথে কল করুন -pএবং ব্যবহার করুন $_ধন্যবাদ পাভেল !

যাদু স্ট্রিংয়ের প্রতিটি অক্ষর ইনপুট অ্যারেতে একটি সূচক উপস্থাপন করে। আমার ভেরিয়েবলটি দরকার zযাতে আমি কেবল এসটিডিইএন থেকে একবার পড়ি।

আমি ল্যাম্বা লিখে একটি অ্যারে গ্রহণ করে এবং একটি স্ট্রিং ফিরিয়ে আইও থেকে কিছু খরচ বাঁচাতে পারি could এটি vশেষে অতিরিক্ত অতিরিক্ত প্রয়োজন , কারণ এটি কোনও নিখরচায় নতুন লাইন পাচ্ছে না -p

রুবি , 162 110 108 105 বাইট (ফাংশন)

->z{"abvevjlmvopqtuvvacvfghvklnvopstuvvadvfihvjlmvopqtuvvabvevjlnvoprstvv".gsub(/./){|c|z[c.ord-97]||$/}}

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


আমি ব্যবহার করার জন্য একটি উপায় খুঁজে বের করতে সক্ষম হয়েছে না String#unpackচেয়ে খাটো হতে .charsসঙ্গে .ord-97, কিন্তু একটা কারণ হতে পারে।
বেনজ 2240

1
এখানে কয়েকটি বাইট বন্ধ রয়েছে: tio.run/##VY/…
পাভেল

ঝরঝরে, ধন্যবাদ! আজ আমি শিখেছি -pএবং$_
benj2240

আমার অজ্ঞতা ক্ষমা করুন, তবে আমি কীভাবে এটি কমান্ড-লাইন বা আইআরবি থেকে চালাব?
জন টপলি

1
@ জন টোপালি আপনি যদি আইআরবি ব্যবহার করতে চান তবে আপনি এই তিনটি লাইন একের পর এক কপি-পেস্ট করতে পারবেন। কমান্ড লাইন থেকে সম্পূর্ণ প্রোগ্রামটি ব্যবহার করতে, এখানে শুরু করুন
বেনজ 2240

4

জাভা 8, 241 233 141 140 138 বাইট

a->{a.add("\n");"01E4E9;<E>?@CDEE02E567E:;=E>?@CDEE03E587E91<E>?@CDEE01E4E91=E>?ABCEE".chars().forEach(i->System.out.print(a.get(i-48)));}

ব্যাখ্যা:

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

a->{                  // Method with ArrayList<String> parameter and no return-type
 a.add("\n");         //  Add a new-line as last item (index 21) to the input-List
 "01E4E9;<E>?@CDEE02E567E:;=E>?@CDEE03E587E91<E>?@CDEE01E4E91=E>?ABCEE".chars().forEach(i->
                      //  Loop over the bytes of this String above
   System.out.print(  //   Print:
     a.get(i-48)));}  //    The String in the list at index `i-48`

এটি মূলত ASCII টি অক্ষর 0(48) এর মাধ্যমে E(69) মাধ্যমে 0-সূচক সূচকগুলিতে এর 0মাধ্যমে রূপান্তর 21করে i-48



4

05 এ বি 1 ই , 142 68 66 65 বাইট

`¶)•7/è¸ĀuVI{è:÷MDS.₁bö¼d@ÉÃƶõî›Λðë’OŒβι"žHƒö>“ÃaÈǝõöÓ∍¿þœθÀ•2ôèJ

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

-74৪ বাইটগুলি একটি বেস -২৫৫ সংক্ষেপিত স্ট্রিং ব্যবহার করে এরিকথ আউটগলফারকে ধন্যবাদ জানায়।

-২ বাইটগুলি তিনটি 0 এর সংঘবদ্ধ হওয়া রোধ করতে সংকুচিত স্ট্রিংটিকে উল্টিয়ে

-1 বাইট ধন্যবাদ এরিকথিউটগল্ফারকে, নেতৃস্থানীয় 0 টি এড়ানোর জন্য ইনপুট অ্যারেতে দুটি আইটেম স্যুইচ করে এবং এভাবে বিপরীত আর- কমান্ড মুছে ফেলুন ।



2

স্ট্যাক্স , 59 58 বাইট

îòÖ╥╬╬╞:,y╓ønä⌠╦╒ï╦≤x◘‼ε╩ⁿ◙ΓZ►e«qpôr╡"╣Ü≥┤╢┴;╡ÑkAú0:=;m╠╠x

এটি চালান এবং এটি ডিবাগ করুন

একই প্রোগ্রামটির সংশ্লিষ্ট আসকি উপস্থাপনাটি এটি।

`ORIpY$T&z{m6Y=>mR)_ .VQ)eN70e[:0yO8j$^RN[ Bp{IN/$|"3^;G#^&lv!`FAx+@]p

`ORIpY$T&z{m6Y=>mR)_ .VQ)eN70e[:0yO8j$^RN[ Bp{IN/$|"3^;G#^&lv!`এর মান সহ একটি সংকুচিত আক্ষরিক "CDBGBLNOBQRSVWBBCEBHIJBMNPBQRUVWBBCFBHKJBLNOBQRSVWBBCDBGBLNPBQRTUVBB"। অক্ষরগুলি টোকেন টেবিলের সূচকগুলি উপস্থাপন করে। এই প্রোগ্রামটি একটি নতুন লাইন উপস্থাপন করার জন্য আরও একটি টোকেন যুক্ত করেছে। এটি ইনপুটটিতে নেই, তবে মৃত্যুদন্ড কার্যকর করার সময় যুক্ত হয়েছে। প্রোগ্রামটির বাকি অংশগুলি এইভাবে কাজ করে।

F           for each character, execute the rest of the program
 A          integer literal 10, character code of newline
  x+        append 10 to the input array
    @       get element at index, using wrap-around
                the list is size 22, and B is 66, so B gets the first token
     ]      wrap the result in a singleton array.
                this effectively turns 10 into "\n"
      p     print without newline

2

সি (জিসিসি) ফাংশন, ১৩৯ বাইট

i,m;f(char**s){for(i=0;i<68;)m="AB@E@JLM@OPQTU@@AC@FGH@KLN@OPSTU@@AD@FIH@JLM@OPQTU@@AB@E@JLN@OPRST@@"[i++],printf(m^64?"%s":"\n",s[m-65]);}

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


খুশী হলাম। আপনি কোড ব্যাখ্যা করতে পারেন?
আর্মিনব

@ আর্মিনব খুব বেশি অভিনব কিছু নয়, দীর্ঘ "এবি @ ই ..." স্ট্রিংয়ে টোকেন এবং নিউলাইন এবিসি ... = টোকেন [012] এর সূচক রয়েছে ... '@' = নিউলাইন, একটি টোকেন বা নিউলাইন 'হিসাবে মুদ্রিত হয়েছে আমি সেই স্ট্রিং দিয়ে পুনরাবৃত্তি করি।
প্রিন্সপোলকা

মার্জ printfমধ্যেfor
l4m2

1
কোডিংটি উল্টো করুন
l4m2


1

লাল , 133 বাইট

foreach c{abzezjlmzopqtuzzaczfghzklnzopstuzzadzfihzjlmzopqtuzzabzezjlnzoprstzz}[prin either c =#"z"["^/"][t/(to-integer c -#"a"+ 1)]]

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

Ungolfed

t টোকেনের তালিকা সহ একটি ব্লক

s:{abzezjlmzopqtuzzaczfghzklnzopstuzzadzfihzjlmzopqtuzzabzezjlnzoprstzz}
foreach c s[                           ; for each character in s
    prin either c = #"z"               ; if it's a 'z' 
        ["^/"]                         ; print CR
        [t/(to-integer c - #"a" + 1)]  ; otherwise find which token to print
]                                      ; by mapping its offset to the alphabet


1

গণিত, ১০২ বাইট

""<>Append[#,"
"][[36^^ajikrj7lg8pya7wgtt43pvrilsik1dea1uht6mx3go33m4mjj02hb4wi9w3~IntegerDigits~23]]&

খাঁটি ফাংশন। স্ট্রিংগুলির ইনপুট হিসাবে একটি তালিকা নেয় এবং আউটপুট হিসাবে একটি স্ট্রিং প্রদান করে। অন্যান্য উত্তরের মতো একইভাবে সমস্ত টোকেন সূচকগুলি এনকোড করে।


1

রুবি , 97 বাইট

->a{112.times{|i|$><<a[i%7-1+i%28/7*5]*("0@Xg(44k$,Xg0@Tz"[i/7].ord>>~i%7&1)+$/*(i%7/6+i%28/27)}}

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

বেশিরভাগ অন্যান্য উত্তরের আলাদা পদ্ধতির সাহায্যে কয়েকটি বাইট সংরক্ষণ করা হয়েছে।

প্রতিটি লাইনে সম্ভব টোকেনের সংখ্যা নিম্নরূপ

Line number   Tokens 
1             4
2             5
3             5
4             7

ম্যাজিক স্ট্রিংটিতে প্রতি লাইনে একটি করে অক্ষর থাকে, যা গানের 16 লাইনের প্রত্যেকটির জন্য 7 টি উপলব্ধ টোকেনগুলির বিটম্যাপ হিসাবে ব্যাখ্যা করা হয়।

a[i%7-1+i%28/7*5] প্রতিটি লাইনের টোকেন দিয়ে পুনরাবৃত্তি হয়, প্রতিটি নতুন লাইনের জন্য 5 দ্বারা স্থানান্তরিত হয় এবং 1 টি অফসেট দিয়ে অ্যাকাউন্টে প্রথম লাইনে কেবল 4 টি টোকেন রয়েছে।

লাইন 1-3 এর জন্য কেবলমাত্র 64 এর মাধ্যমে 4 এর বিট ব্যবহার করা হয় - 2 এবং 1 এর বিট ব্যবহার না করে পরবর্তী লাইন থেকে টোকেনগুলি মুদ্রণ করা এড়ানো হয়। লাইন 4 এর জন্য, 64 এর 1 থেকে 1 এর সমস্ত 7 বিট ব্যবহৃত হয়।

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