চার্লি, অস্কার, ডেল্টা, প্রতিধ্বনি


30

রেডিও যোগাযোগের একটি বড় অংশ হ'ল ন্যাটো ফোনেটিক বর্ণমালা , যা অক্ষরগুলিকে কমসগুলিতে বোঝার জন্য আরও সহজ করার জন্য শব্দ হিসাবে শব্দগুলি এনকোড করে। আপনার কাজ, আপনি যদি এটি গ্রহণ করতে চান তবে তা একে একে মুদ্রণ করা।

আপনাকে অবশ্যই এই সঠিক স্ট্রিংটি স্টডআউটে মুদ্রণ করতে হবে:

A: Alfa
B: Bravo
C: Charlie
D: Delta
E: Echo
F: Foxtrot
G: Golf
H: Hotel
I: India
J: Juliet
K: Kilo
L: Lima
M: Mike
N: November
O: Oscar
P: Papa
Q: Quebec
R: Romeo
S: Sierra
T: Tango
U: Uniform
V: Victor
W: Whiskey
X: Xray
Y: Yankee
Z: Zulu

নিয়মাবলী:

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


4
আমি এটিকে ডুপ হিসাবে বন্ধ করছি কারণ এতে কোনও শোষণমূলক কাঠামো নেই যা বিল্ট-ইন সংকোচনের চেয়ে কাস্টম সংক্ষেপণ স্কিমগুলি আরও ভাল সম্পাদন করতে দেয় এবং লক্ষ্য চ্যালেঞ্জটি অন্তর্নির্মিত সংকোচনের জন্য আমাদের ডি ফ্যাক্টো স্ট্যান্ডার্ড চ্যালেঞ্জ।
মেগো

1
ঘনিষ্ঠভাবে সম্পর্কিত. যদি আমি একে একে এর একটি ডুপ বলি তবে এটি লোকেরা তাদের নিজস্ব শব্দ চয়ন করতে দেয় যা প্রকৃতপক্ষে সংক্ষেপণকে আরও অনেক বেশি সম্ভব করে তুলেছিল।
মার্টিন ইন্ডার

3
প্রথমটি হওয়া উচিত নয় A: Alpha?
সানসি

3
@ সানসি: উইকিপিডিয়া অনুসারে (প্রশ্নের লিঙ্কটি দেখুন), না। এটি এটিআইএস, ন্যাটো নয়। কিন্তু তারপর, এটা করা উচিত Juliett, না Julietএবং X-rayপরিবর্তে Xray
তিতাস

উত্তর:


18

পাইথন 2 , 189 186 বাইট

i=65
for w in"lfa ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu".split():print'%c: %c'%(i,i)+w;i+=1

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


পূর্ববর্তী: (এটি দুর্দান্ত ছিল, কিন্তু আমি বুঝতে পারি যে সহজ সংস্করণটি বাইট দ্বারা আরও ছোট করা যেতে পারে)

w=''
i=65
for c in"lfAravOharliEeltAchOoxtroTolFoteLndiAulieTilOimAikEovembeRscaRapAuebeComeOierrAangOniforMictoRhiskeYraYankeEulU":
 w+=c.lower()
 if'_'>c:print'%c: %c'%(i,i)+w;w='';i+=1

12

জেলি , 76 বাইট

“ṭṡl°ẠkWßġȮRẎ+wḋñȥạġ¢ƊḌ¬kạẠ¦WṡỊƒK⁹ç}⁶hm}Kñ£ɦ/lṇẊɠƓ}pƤ°⁸Ụ.g⁹Ġh9ṁ{f»ḲØAżj€⁾: Y

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

কিভাবে?

খুব সুন্দর মাত্র অভিধানের মান এবং সংক্ষেপণ। এবং এর মধ্যে কোডটি »কেবল একটি সংকুচিত মান যা জেলির "Alfa Bravo Charlie Delta Echo Foxtrot Golf Hotel India Juliet Kilo Lima Mike November Oscar Papa Quebec Romeo Sierra Tango Uniform Victor Whiskey Xray Yankee Zulu"অভিধানে সমস্ত শব্দ (একক স্পেস উপসর্গ সহ, বাদে "Alfa") অনুসন্ধান করে স্ট্রিং তৈরি করবে ( " Xray"অভিধানে নেই, তবে প্রত্যক্ষ স্ট্রিং মান " X"এবং অভিধান) "ray"পরিবর্তে এন্ট্রি ব্যবহার করা হয়)।

কোডের বাকি অংশগুলি বাকীটি করে:

“...»ḲØAżj€⁾: Y - Main link: no arguments
“...»           - the string described above (really a list of characters)
     Ḳ          - split at spaces
      ØA        - alphabet yield - ['A','B','C', ...,'X','Y','Z']
        ż       - zip - makes a list of lists [['A'],['A','l','f','a']],[['B'],['B','r','a','v','o']], ...]
         j€     - join each with
           ⁾:   - the string ": "
              Y - join with line feeds
                - implicit print

(দ্রষ্টব্য: আমি কখনই জেলিতে প্রোগ্রাম করি নি)) আমি যখন আপনার কোডটি দেখি তখন আমি দুটি বিষয় নিয়ে ভাবছি: ১. আপনি বর্তমানে বর্ণমালাটি লুপ করেন এবং শব্দগুলি দিয়ে তাদের সাথে যোগ দিন। জেলিতে কি কোনও স্ট্রিংয়ের প্রথম চরিত্রটি পাওয়া সম্ভব, তাই আপনি বর্ণমালার পরিবর্তে শব্দগুলি লুপ করে, এবং তাদের সাথে প্রথম_লেটার_অর্থ_শব্দ + + যোগ করুন: "+ শব্দ? এবং ২. আপনি স্পেস সহ সমস্ত শব্দ পুনরুদ্ধার করেন এবং তারপরে স্থান দ্বারা বিভক্ত হন। শীর্ষস্থানীয় মূলধনপত্রগুলি দ্বারা কী কী অন্তর্ভুক্ত-বিভক্ত হওয়া সম্ভব? কোনও ধারণা নেই যে এই স্পেসগুলি এমনকি তাদের সংকীর্ণ আকারে অতিরিক্ত বাইট দেয় বা না, এবং আমার বিবরণটি যদি ২ এ কমিয়ে আনা যায় তবে
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন (১) হ্যাঁ প্রতিটি শব্দের প্রথম অক্ষর ব্যবহার করা সম্ভব, তবে বর্ণমালা ফলন দ্বি-বাইট পরমাণু হওয়ায় এটি সংক্ষিপ্ত হবে না। (2) হ্যাঁ এটা বড় হাতের অক্ষরে উপর বিভক্ত করা সম্ভব, কিন্তু এটি আশ্চর্যজনক কোন শূন্যস্থান সঙ্গে স্ট্রিং এর কম্প্রেশন আসলে আর (নেতৃস্থানীয় ব্যবধান সহ অনেক শব্দ আসলে মধ্যে অভিধান, যেমন এই সব হয় সঙ্গে ক্যাপিটালাইজেশন)।
জোনাথন অ্যালান

2
অভিধানে শীর্ষস্থানীয় স্থান নেই। যাইহোক, যখন এক সারিতে একাধিক শব্দের সংক্ষেপণ করা যায়, তখন ডিফল্টরূপে এগুলি ফাঁক দিয়ে আলাদা করা হয়; প্রথম শব্দের একটি নেতৃস্থানীয় স্থান থাকবে না, তবে নীচের সমস্ত শব্দ থাকবে will
ডেনিস


11

05AB1E , 102 98 বাইট tes

এরিক দ্য আউটগলফারকে 4 টি বাইট সংরক্ষণ করা হয়েছে

”AlfaІvo¼¯¤œ®È¨›trotŠˆƒ‹Š™ÈŸt Kilo´àma—……ÍЗŽêpa¼°«Äoµ†Çâgo¸šÉµ Whiskey Xrayµ‹nkeeâ¸lu”#vy¬„: «ì,

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

ব্যাখ্যা

05AB1E এর অভিধানে শব্দগুলির জন্য অভিধান সংক্ষেপণ ব্যবহার করে।
অন্যান্য শব্দের জন্য যখনই সম্ভব আংশিক অভিধান সংক্ষেপণ ব্যবহার করে।
সরল-পাঠ্য শব্দ যেখানে উভয়ই সম্ভব নয়।

#          # split on spaces
 v         # for each word
  y        # push the word
   ¬       # get the first letter of the word
    „:     # push the string ": "
       «   # append this to the letter
        ì  # prepend the result to the word
         , # print with newline

2
পরিবর্তে এই সংকুচিত স্ট্রিং ব্যবহার করে 98 এটিকে নিচে পান: ”AlfaІvo¼¯¤œ®È¨›trotŠˆƒ‹Š™ÈŸt Kilo´àma—……ÍЗŽêpa¼°«Äoµ†Çâgo¸šÉµ Whiskey Xrayµ‹nkeeâ¸lu”
এরিক দ্য আউটগল্ফার

@ এরিকথ আউটগল্ফার: ধন্যবাদ! আমি নিশ্চিত ছিলাম যে আমি অভিধান paএবং liসন্ধান করেছি কিন্তু আমি অবশ্যই সেগুলি মিস করেছি। যদিও আমি বিবেচনা করি নি yaএবং zuশব্দ হিসাবে :)
এমিগানা

6

রুবি, 169 টি অক্ষর

(প্রচন্ডভাবে উপর ভিত্তি করে জোনাথন অ্যালান এর পাইথন 2 সমাধান। আপনি ধারণা মত, মূল উত্তর ভোট দিন দয়া করে।)

i=?@
"LfaRavoHarlieEltaChoOxtrotOlfOtelNdiaUlietIloImaIkeOvemberScarApaUebecOmeoIerraAngoNiformIctorHiskeyRayAnkeeUlu".scan(/.[a-z]+/){|w|puts i.succ!+": "+i+w.downcase}

নমুনা রান:

bash-4.3$ ruby -e 'i=?@;"LfaRavoHarlieEltaChoOxtrotOlfOtelNdiaUlietIloImaIkeOvemberScarApaUebecOmeoIerraAngoNiformIctorHiskeyRayAnkeeUlu".scan(/.[a-z]+/){|w|puts i.succ!+": "+i+w.downcase}' | head
A: Alfa
B: Bravo
C: Charlie
D: Delta
E: Echo
F: Foxtrot
G: Golf
H: Hotel
I: India
J: Juliet

6

জাভা 7, 242 225 222 217 বাইট

void d(){char c=65;for(String s:"lpha ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu".split(" "))System.out.println(c+": "+c+++s);}

ব্যাখ্যা:

void d(){                          // Method
  char c = 65;                     //  Starting character 'A'
  for(String s : "lpha ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu"
      .split(" "))                 //  Loop over the word-parts
    System.out.println(            //   Print line with:
      c                            //    The current character
      + ": "                       //    + ": "
      + c++ + s                    //    + the current character + word-part (and raise the character afterwards)
    );                             //   End of print line
                                   //  End of loop (implicit / single-line body)
}                                  // End of method

পরীক্ষার কোড:

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

class M{
  static void d(){char c=65;for(String s:"lpha ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu".split(" "))System.out.println(c+": "+c+++s);}

  public static void main(String[] a){
    d();
  }
}

জাভা 5 এবং পরবর্তী সংস্করণগুলির সাথে কাজ করা উচিত।
হোলার

5

অক্টাভা, 215 210 209 বাইট

লুইস মেন্ডোকে 5 টি বাইট সংরক্ষণ করে। লুইস মেন্ডোকে ধন্যবাদ দিয়ে আমি 4 বাইট সংরক্ষণ করেছি, তবে পদ্ধতির পরিবর্তন আমাকে আরও একটি বাঁচাতে সহায়তা করে

fprintf('%s: %s%s\n',[k=num2cell(65:90);k;regexp('lfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu','[A-Z]','split')]{:})

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

আমি যদি স্পেসগুলি থেকে মুক্তি পেয়ে থাকি, তবে আমি 25 বাইট সংরক্ষণ করতে পারি, তবে তারপরে আমাকে একটি রেইজেক্স ব্যবহার করতে হবে। রেজেক্স নিজেই বেশ কয়েকটি বাইটের জন্য ব্যয় করতে পারে এবং এটি সমস্ত শব্দের lfa, ravoমূল অক্ষরও সরিয়ে ফেলত এবং আমাকে এই শব্দগুলি ইত্যাদি রেখে দেয়। সুতরাং আমি শীর্ষস্থানীয় চরিত্রগুলির সাথে নতুন স্ট্রিংগুলি যুক্ত করতে পারি। এই সমস্ত ব্যয় বাইট।

পুরানো ব্যাখ্যা:

fprintf('%s: %s\n',      % Print a string with the format "str: str\n"
num2cell(65:90)          % Create a cell array with the numbers 65 - 90, one in each cell
strsplit('Alfa ...       % Split the string on the default delimiter: space
[num2cell();strsplit()]  % Concatenate cell arrays, leaving us with
                         % {'A',    'B'
                         %  'Alfa', 'Bravo'}
[...]{:}                 % Convert the cell array to a comma-delimited vector
                         % 'A', 'Alfa', 'B', 'Bravo' ...

ধন্যবাদ! এই ছিল কিছুটা মেসের! , এবং আরও তিনটি বাইট ...
স্টিভি গ্রিফিন

আহ, হ্যাঁ, 'split'এখানে দীর্ঘ হবে
লুইস মেন্ডো

'split'সংক্ষিপ্ত ছিল: 209 :)
স্টিভি গ্রিফিন

আমি দেখি! সাবাশ!
লুইস মেন্ডো

আপনি স্পেসে বিভক্ত হয়ে আরও 5 টি বাইট সংরক্ষণ
লুইস মেন্ডো

5

পিএইচপি, 202 227 196 187 বাইট

9 বাইট সংরক্ষণের জন্য দেউই মরগানকে ধন্যবাদ

echo preg_replace('/([A-Z])[a-z]+/',"$1: $0\n",AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu);

https://repl.it/GMkH/1


পুরানো সংস্করণ

31 বাইট সংরক্ষণের জন্য ম্যান্যাটওয়ার্ক এবং সন্নিবেশকারী নামকে ধন্যবাদ !

foreach(preg_split('/\B(?=[A-Z])/',AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu)as$k)echo"$k[0]: $k\n";

https://eval.in/749541

পূর্ববর্তী সংস্করণটির সাথে আউটপুটটি ভুল বলে অনুগ্রহ করে সন্নিবেশকারী নামটির জন্য ধন্যবাদ ।

$a=preg_split('/(?=[A-Z])/',AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu,-1,PREG_SPLIT_NO_EMPTY);foreach($a as $k)echo "$k[0]: $k\n";

https://repl.it/GKS8/3

$a=preg_split('/(?=[A-Z])/',AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu);foreach($a as $k)echo"$k[0]: $k\n";

https://repl.it/GKS8/2


পরিবর্তনশীল কেন $a? পুরো preg_split()কলটি কেবলমাত্র foreachপ্যারামিটারে সরাতে হবে । তাহলে আশেপাশের কোনও জায়গার asআর দরকার নেই।
manatwork

পরিবর্তে ধ্রুবক PREG_SPLIT_NO_EMPTY , ভাল এর মান ব্যবহার করুন: 1। কিন্তু ব্যক্তিগতভাবে আমি রেগুলার এক্সপ্রেশন পরিবর্তে খামচি হবে: /\B(?=[A-Z])/
manatwork

1
ধন্যবাদ @ অন্তর্ভুক্তকারীর নাম এখানে আমি এখনই সম্পাদনা করবো :Dএখনও কোডগল্ফিংয়ের অভ্যস্ত হয়ে যাচ্ছি
কোডগল্ফিংয়ের ʰᵈˑ

এটির পরিবর্তে প্লেইন অ্যারে সহ একটি বাইট সংক্ষিপ্ত হবে preg_split
তিতাস

1
10 খাটো অক্ষর:echo preg_replace('/([A-Z])[a-z]+/',"$1 = $0\n",Alfa...Zulu);
দেউই মরগান

4

ব্র্যাচল্যাগ , 178 বাইট

"Alfa Bravo Charlie Delta Echo Foxtrot Golf Hotel India Juliet Kilo Lima Mike November Oscar Papa Quebec Romeo Sierra Tango Uniform Victor Whiskey Xray Yankee Zulu"ṇ₁{hw": "w?ẉ}ᵐ

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

ব্যাখ্যা

"…"ṇ₁               Split the string on spaces
     {         }ᵐ   Map on each word:
      hw              Write the first letter
        ": "w         Write ": "
             ?ẉ       Write the word followed by a new line

4

পিএইচপি, 188 186 180 174 বাইট

কোনও পূর্ববর্তী স্থান নেই, শীর্ষস্থানীয় একটি নিউলাইন

<?=preg_filter("#[A-Z]#","
$0: $0",AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu);

সংক্ষিপ্ত স্ট্রিংয়ের সাথে সমস্ত বড় হাতের অক্ষর সহজেই প্রতিস্থাপন করে
<newline><letter><colon><space><letter>



-13 এর সাথে বাইটস- gzinflateএর ফলাফল gzdeflate(Alfa...Zulu)
তিতাস

দুর্ভাগ্যবশত, কোন নেতৃস্থানীয় সম্পর্কে newline অনুমতি দেওয়া হয় মাত্র (একক) trailing সম্পর্কে newline
aross

@ অ্যারোস: গতকাল থেকে ওপি'র মন্তব্য দেখুন:and for your other question, yes, but just one.
টাইটাস

4

x86 সমাবেশ, 512 বাইট

এনএএসএম এর সাথে সংকলিত এবং কিউইএমইউ দিয়ে পরীক্ষিত। বুট করার জন্য আপনাকে বুটসেক্টর (ফাইলের মধ্যে 510 বাইট) শেষে 2 বাইটের বুট স্বাক্ষর লাগাতে হবে তাই আমি জিরো দিয়ে সংকলিত কোডটি পূরণ করে 317 বাইট হারিয়েছি। এটি আমার প্রথম গল্ফ তাই কোনও বিরাট ত্রুটির জন্য আমাকে ক্ষমা চাইতে হবে।

[org 7c00h]     ;So NASM can change the labels into memory locations correctly.

cld             ;Tells lodsb to look forward in memory

mov bh, 65      ;Moves the ASCII value of A into the BH register
mov si, NATO    ;Moves the first byte of NATO into the si register
call print      ;Call the 'print' subroutine

jmp $            ;Loops forever

print:
    mov ah, 0eh ;Moves the hex value 0E into the AH register. Tells interrupt 10h that we want subfucntion 0E
    lodsb       ;Load a byte of SI into AL and increments a register (DL i think) that tells it the offset to look at

    cmp al, 3   ;Compares the AL register that now has a byte from our string to ASCII value 3 (Enf Of Text)
    je R        ;If AL == 3 then jump to R

    cmp al, 0   ;Comapre AL to ASCII 0 (NULL)
    je newWord  ;If AL == 0 hump to newWord
    int 10h     ;Execute interrupt 10h Subfunction 0Eh (stored in AH register) which prints character value in AL
    jmp print   ;Jump to print

newWord:
    mov al, 10  ;Move ASCII 10 (New Line) into AL
    int 10h     ;Print character

    mov al, 13  ;Move ASCII 13 (Carriage Return) into AL
    int 10h     ;Print character

    mov al, bh  ;Move BH (which has our starting letter) into AL
    int 10h     ;Print Character

    mov al, 58  ;Move ASCII 58 (:) into AL
    int 10h     ;Print Character

    mov al, 32  ;Move ASCII 32 (Space) into AL
    int 10h     ;Print Character

    mov al, bh  ;Move BH into AL
    int 10h     ;Print Character

    inc bh      ;Increments BH by one (BH++)
    jmp print   ;Jump to print

R:
    ret         ;Returns from a subroutine

;Below defines bytes (db) of our string to print. I used 0 as word seperators and 3 to end the string.
NATO: db 0,"lfa",0,"ravo",0,"harlie",0,"elta",0,"cho",0,"oxtrot",0,"olf",0,"otel",0,"ndia",0,"uliet",0,"ilo",0,"ima",0,"ike",0,"ovember",0,"scar",0,"apa",0,"uebec",0,"omeo",0,"ierra",0,"ango",0,"niform",0,"ictor",0,"hiskey",0,"ray",0,"ankee",0,"ulu",3

times 0200h - 2 - ($ - $$) db 0 ;Zerofill the file with upto 510 bytes (This is where all my bytes are)
dw 0AA55H   ;Write the bootsignature

আউটপুট

উপরের কোডটি আউটপুট দেয় এটি। আপনি দেখতে পাচ্ছেন যে: আলফা অনুপস্থিত এবং এটি কারণ হ'ল প্রম্পটটি 25 লাইন লম্বা ... কোড আউটপুট উপরে

আমি একটি মুদ্রিত হয়েছে তা প্রমাণ করার জন্য : আলফা আমি এর সাথে প্রতিস্থাপন 0,"ulu"করেছি 32,"Z: Zulu"যাতে জুলু ইয়াঙ্কির মতো একই লাইনে থাকে। কোড পরিবর্তন করা হয়েছে

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


4

পাইথন 2 , 186 182 বাইট

print''.join('\n%s: '%c*('['>c)+c for c in'AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu')

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


2
প্রশ্নের মতামত দেখুন: একটি শীর্ষস্থানীয় নিউলাইন হ'ল (এখন) গৃহীত
টাইটাস

পিপিসিজিতে আপনাকে স্বাগতম! দারুণ জিনিস.
জোনাথন অ্যালান

4

সি (মিনজিডাব্লু, কলং), 218 বাইট

@ গ্যাস্ট্রোপনারকে ধন্যবাদ!

i;f(){char s[]="lfa:ravo:harlie:elta:cho:oxtrot:olf:otel:ndia:uliet:ilo:ima:ike:ovember:scar:apa:uebec:omeo:ierra:ango:niform:ictor:hiskey:ray:ankee:ulu";for(i=64;++i<91;)printf("%c: %c%s\n",i,i,strtok(i^65?0:s,":"));}

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

সি, 259 236 বাইট

i;f(){char*s="lfa\0ravo\0harlie\0elta\0cho\0oxtrot\0olf\0otel\0ndia\0uliet\0ilo\0ima\0ike\0ovember\0scar\0apa\0uebec\0omeo\0ierra\0ango\0niform\0ictor\0hiskey\0ray\0ankee\0ulu";for(i=64;++i<91;s+=strlen(s)+1)printf("%c: %c%s\n",i,i,s);}

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


আমি কীভাবে এটি সংকলন করব?
Itay গ্রুদেব

1
@ আইটিগ্রুদেভ, জিসিসি এবং ক্ল্যাং দু'জনেরই যেমনটি তৈরি করা হয়েছে তেমন সংকলন করা উচিত। gcc src.cবা clang src.c। এখানে একটি মূল ফাংশন সহ একটি নমুনা রান যুক্ত করা হয়েছে যা কোডটি আসলে লিঙ্ক করবে এবং চালাবে: ideone.com/4 Eowlh
chris

@ ক্রিস তারপরে 4 বাইট ব্যয়ে, কোডটি বৈধ হওয়ার fসাথে প্রতিস্থাপন করা উচিত নয় main, বা আমি কোনও গল্ফিং কনভেনশন মিস করছি।
Itay গ্রুদেব

2
@ ইটিগ্রুদেব, আমি যেভাবে দেখছি, প্রশ্নটি কেবল কার্যকারিতা চেয়েছিল, একটি পূর্ণ, স্বনির্ভর প্রোগ্রাম নয়।
ক্রিস

1
218 টি স্ট্রোক () দিয়ে এবং কিছু i;f(){char s[]="lfa:ravo:harlie:elta:cho:oxtrot:olf:otel:ndia:uliet:ilo:ima:ike:ovember:scar:apa:uebec:omeo:ierra:ango:niform:ictor:hiskey:ray:ankee:ulu";for(i=64;++i<91;)printf("%c: %c%s\n",i,i,strtok(i^65?0:s,":"));}অস্পষ্ট স্ট্রিং দিয়ে অস্পষ্টভাবে যদি এটি সর্বত্র কাজ করে: টিআইও সেগফাল্টস তবে কমপক্ষে মিনিজিডব্লুতে কাজ করে। এটি কার্যকর না হওয়ার কারণটি দেখতে পাচ্ছেন না ।
গ্যাস্ট্রোপনার

3

গেম, 168 টি অক্ষর

\A=@subst{?<J>=\?: \$0\\n;AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu}@end

নমুনা রান:

bash-4.3$ gema '\A=@subst{?<J>=\?: \$0\\n;AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu}@end' | head
A: Alfa
B: Bravo
C: Charlie
D: Delta
E: Echo
F: Foxtrot
G: Golf
H: Hotel
I: India
J: Juliet

3

বাশ , 224 205 188 180 বাইট

17 বাইট অপসারণ করার জন্য ডিজিটাল ট্রমা এবং 8 বাইটের জন্য ম্যান্যাটওয়ার্ককে ধন্যবাদ।

set {A..Z}
for i in lfa ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu;{ echo $1: $1$i;shift;}

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



সূচকের অ্যারে aখুব দীর্ঘ। set {A..Z};for i in lfa … ulu;{ echo $1: $1$i;shift;}
manatwork

2

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

for x in'Alfa Bravo Charlie Delta Echo Foxtrot Golf Hotel India Juliet Kilo Lima Mike November Oscar Papa Quebec Romeo Sierra Tango Uniform Victor Whiskey Xray Yankee Zulu'.split():print x[0]+': '+x

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

উত্তেজনাপূর্ণ বা চালাক নয়। কেবল তালিকার মধ্য দিয়ে লুপ করুন এবং তারপরে প্রথম অক্ষরটি ':' এরপরে পুরো শব্দটি মুদ্রণ করে।


2

পিএইচপি, 184 বাইট 179 বাইট 178

<?=preg_filter('/(.)[a-z]+/',"$1: $0
",AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu);

প্রিগ_রেপ্লেসের পরিবর্তে প্রিগ_ফিল্টার ব্যবহার করে একটি একক বাইট সংরক্ষণ করে।


আসল উত্তর 184 বাইট 179 বাইট

for($c=A;$s=[lfa,ravo,harlie,elta,cho,oxtrot,olf,otel,ndia,uliet,ilo,ima,ike,ovember,scar,apa,uebec,omeo,ierra,ango,niform,ictor,hiskey,ray,ankee,ulu][+$i++];$c++)echo"$c: $c$s
";

এটিকে ফ্লাইতে প্রথম চর উত্পন্ন করার জন্য সাজানো হয়েছে তা ব্যবহার করে।

@ টিটাস দ্বারা 5 টি বাইট সংরক্ষণ করা হয়েছে।


2
আপনার মূলটি 180-1 এর সাথে নিচে নামান for($c=A;$s=[lfa,...,ulu][+$i++];$c++)echo"$c: $c$s\n";। যদিও ভাল রেজেক্স।
তিতাস

টিটাস আমার মনে ছিল আরও একটি ভাল উপায় থাকতে হবে তবে প্রেগ এ চলে যেতে হবে। ভকভগক !
ক্রিস্টোফ

2

এসওজিএল , 91 বাইট

╗D↕«∙φā¡75↔TI.½!γΜΧ…¡%<F┼0h╔κy|▓@TņV≈%⁹cr_σy░mgļΕžΕ⅝ »τ{M╔|«▼↔»aΓ²⁹┘′⅓G…└g↔bFΞ‽‘θ{KUtƧ: ooo

ব্যাখ্যা:

...‘θ{KUtƧ: ooo  that gibberish is a compressed string                 
...‘             push the compressed string of the words
    θ            split on spaces
     {           for each
      K          pop the 1st letter off & push it
       U         uppercase it
        t        output in newline a copy of the letter
         Ƨ: o    append ": "
             o   append the alphabet letter
              o  append the rest of the word

2

জিএনইউ সেড , 165 বাইট

এই স্ক্রিপ্টটি মার্টিন এেন্ডারের রেটিনা জবাবের ভিত্তিতে তৈরি ।

s/$/AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu/
s/[A-Z]/\n&: &/g
s/.//

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

ব্যাখ্যা:

s/$/AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu/
   # generate the alphabet words in concatenated form
s/[A-Z]/\n&: &/g
   # prepend '\nUL: ' before each upper-case letter (UL), getting the needed format
s/.//
   # delete the leading newline, plus implicit printing at the end


2

Lua, 278 260 bytes

Thanks again to Manatwork for saving 18 bytes!

function f(w)print(w.sub(w,0,1)..": "..w)end
f"Alfa"f"Bravo"f"Charlie"f"Delta"f"Echo"f"Foxtrot"f"Golf"f"Hotel"f"India"f"Juliet"f"Kilo"f"Lima"f"Mike"f"November"f"Oscar"f"Papa"f"Quebec"f"Romeo"f"Sierra"f"Tango"f"Uniform"f"Victor"f"Whiskey"f"Xray"f"Yankee"f"Zulu"

Try it online


Older versions

a={"Alfa","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","Xray","Yankee","Zulu"}
for i=1,26 do print(a[i].sub(a[i],0,1) .. ": " .. a[i]) end

https://repl.it/GK8J

First time doing Lua, do probably can golf more, but thought I'd add it as an answer anyways.


My question may become boring, but again: Why variable a? ;) You can move the entire array declaration inside the for. And the for..in syntax helps to avoid writing those long array indices: pastebin.com/rxck79md Weird Lua thing: if you declare a function and call it 26 times “manually” (I mean, not in a loop) is shorter: pastebin.com/FMF9GmLJ
manatwork

¯\_(ツ)_/¯ for the simple reason that I never used Lua before so I was just following the manual to try make it work, aha. Thanks @manatwork for the info, I didn't know about that.
ʰᵈˑ

2

Lua, 177 bytes

print(("AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu"):gsub('%u',"\n%1: %1"):sub(2))

Try it online!

Without trailing newline, 180 bytes:

io.write(("AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu"):gsub('%u',"\n%1: %1"):sub(2))

Explanation

str = "AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu"
str = str:gsub('%u',"\n%1: %1") -- returns "\nA: Alfa...". %u matches uppercase letters, %1 returns matched letter in this case.
str = str:sub(2) -- remove added newline in the beginning
print(str) -- native print command

It uses Lua's string.gsub substitution function to pattern match the uppercase letters. The letters are then replaced with the requested format (plus the letters themselves). Newlines are also added on the same pass.

The sub-function at the end just trims out newline from the beginning and also works nicely to hide the second return value of gsub, which would have been the amount of replacements.


2

PowerShell, 187 185 bytes

0..25|%{($a=[char]($_+65))+": $a"+(-split'lfa ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu')[$_]}

Try it online!

Loops from 0 to 25, each iteration forming $a of the corresponding capital char. Then string-concatenated with : $a (i.e., the colon-space-letter). Then that string is string-concatenated with an string that's formed by indexing into an array created by -splitting the phonetic string on spaces. Each of those 26 strings is left on the pipeline, and an implicit Write-Output happens at program completion, inserting a newline between elements.

Saved two bytes thanks to @Matt.


Nice. Removing the first character of each word didn't even occur to me. You can chop off 2 bytes doing this: 0..25|%{($a=[char]($_+65))+": $a"+(-split'lfa ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu')[$_]}
Matt

@Matt Oh sure, that makes sense. Thanks!
AdmBorkBork

2

C, 216 215 212 bytes

i=64,l;f(){for(char*s="lfAravOharliEeltAchOoxtroTolFoteLndiAulieTilOimAikEovembeRscaRapAuebeComeOierrAangOniforMictoRhiskeYraYankeEulU";++i<91;printf("%c: %c%.*s%c\n",i,i,l,s,s[l]+32),s+=l+1)for(l=0;s[++l]>90;);}

Try it online!

A detailed, human readable, well commented and perfectly valid (no compiler warnings) version of the program can be found below:

#include <stdio.h>

int main() {
    // Uppercase characters designate the last character of a word
    char*s="lfAravOharliEeltAchOoxtroTolFoteLndiAulieTilOimAikEovembeRscaRapAuebeComeOierrAangOniforMictoRhiskeYraYankeEulU";

    int i = 64; // Consecutive character
    int l; // Word length

    // Loop `i` from A to Z; Shift `s` with word length
    // `s` always points to the beginning of a word
    for( ; ++i < 91; s += l + 1 ) {
        // Increment `l` until you reach the next capital letter
        for( l = 0; s[++l] > 90 ;);
        // Print the current character, the word without it's last letter
        // and the last letter lowercased
        printf( "%c: %c%.*s%c\n", i, i, l, s, s[l]+32 );
    }
}

1
Welcome to PPCG! Nice first post!
Rɪᴋᴇʀ

@ceilingcat Not only the char*s but the printf could go in there too. Thus saving another 3 bytes - a semicolon and 2 curly braces as we no longer need them since there is only one instruction in it's body - the other for loop.
Itay Grudev

2

JavaScript ES6, 216 187 184 180 174 bytes

"AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu".replace(/[A-Z]/g,`
$&: $&`).trim()

Saved a byte thanks to Neil. Saved 5 bytes thanks to ETHproductions.

console.log("AlfaBravoCharlieDeltaEchoFoxtrotGolfHotelIndiaJulietKiloLimaMikeNovemberOscarPapaQuebecRomeoSierraTangoUniformVictorWhiskeyXrayYankeeZulu".replace(/[A-Z]/g,`
$&: $&`).trim());

Japt, 127 bytes

`AlfaBŸvoC•r¦eDeltaE®oFoxÉ•GolfHÇUI˜iaJªietKiloL‹aMikeNovem¼rOs¯rPapaQue¼cRo´oSi€ŸTÂ
UnifŽmVÅ¡rW–skeyXŸyY„keeZªu`r"%A""
$&: $&

Try it online!

Saved 2 bytes thanks to obarakon.


I was wondering how else you could get rid of that leading newline - it would have actually been a byte cheaper than your previous approach to manually prepend A: A to the string. But you can still save another byte by using a literal newline character instead of \n.
Neil

Nice answers. You can use a literal newline in Japt as well. Also, replace accepts a string for its second argument and replaces any $&s in it with the match, so you can do e.g "\n$&: $&" for both langs instead of using functions.
ETHproductions

You can change @"\n{X}: {X}"} in Japt to just "\n$&: $&" :-)
ETHproductions

@ETHproductions Thanks for the help!
Tom

Nice answer! You can save a couple bytes by dropping the " x and inserting a -x flag into the input. Note that the flag adds 1 byte to the total bytes.
Oliver

2

PHP, 175 171 164 162 bytes

Note: no longer requires compressed file, uses IBM-850 encoding.

for($l=A;$c=LfaRavoHarlieEltaChoOxtrotOlfOtelNdiaUlietIloImaIkeOvemberScarApaUebecOmeoIerraAngoNiformIctorHiskeyRayAnkeeUlu[$i++];)echo$c<a?"
$l: ".$l++:"",$c|~▀;

Run like this:

php -nr 'for($l=A;$c=LfaRavoHarlieEltaChoOxtrotOlfOtelNdiaUlietIloImaIkeOvemberScarApaUebecOmeoIerraAngoNiformIctorHiskeyRayAnkeeUlu[$i++];)echo$c<a?"
$l: ".$l++:"",$c|~▀;';echo

Explanation

প্রতিটি চরিত্র পৃথকভাবে মুদ্রণ করে (একটি স্পেস সহ ওআর দ্বারা নিম্নতর)। যদি বড় হাতের অক্ষরের মুখোমুখি হয় তবে এটি প্রথমে "\ nA: A" ফর্মটির একটি স্ট্রিং মুদ্রণ করে।

বদলান

  • অন্য একটি সংক্ষেপণ কৌশল ব্যবহার করে 4 বাইট সংরক্ষণ করা হয়েছে
  • একটি আলাদা ডিলিমিটার ব্যবহার করে ( $lবিস্ফোরক প্যারামের সাথে অ্যাসাইনমেন্ট একত্রিত করতে ) এবং শীর্ষস্থানীয় নিউলাইনটি প্রতিরোধ না করে 7 বাইট সংরক্ষণ করা হয়েছে
  • একটি নতুন পদ্ধতিতে 2 বাইট সংরক্ষণ করা হয়েছে

1

জাপট, 216 214 বাইট

`A: Alfa
B: Bvo
C: Cr¦e
D: Delta
E: E®o
F: FoxÉ
G: Golf
H: HÇU
I: Iia
J: Jªiet
K: Kilo
L: La
M: Mike
N: Novem¼r
O: Os¯r
P: Papa
Q: Que¼c
R: Ro´o
S: Si
T: TÂ
U: Unifm
V: VÅ¡r
W: Wskey
X: Xy
Y: Ykee
Z: Zªu

ব্যাখ্যা: সম্ভবত এটি করার আরও অনেক ভাল উপায় আছে তবে আমি যেহেতু নতুন আছি তা আমি এটি জানি না। আমি মূলত ওসি দিয়ে স্ট্রিংটি সংকুচিত করেছিলাম এবং ওড ব্যবহার করে সেই স্ট্রিংটি সংক্ষেপিত করতে পারি "

If someone wants to help me save bytes by using something different from line breaks, I'd be happy to learn!

edit: Saved 2 bytes using ` instead of Od"


Using Try it online! it doesn't give the desired result :/
ʰᵈˑ

@ʰᵈˑyes that could be, I didn't have enough time to check everything before I had to go to work. I might do it again (and better) after work.
Martijn Vissers

1
@ʰᵈˑ There are some unprintables in the string which don't show up in the Markdown. Try it online!
ETHproductions

@ETHproductions ah thanks for that, I didn't know
ʰᵈˑ

1

Pyke, 89 bytes

.d⻵㡺ᐒଆຳ뼙΋ÒΗ䊊繎ㅨڨǔᯍⰬᐓ❤ᄵ㤉ተ᤬䆰髨⨈性dc Fl5DhRJ": 

Do these characters happen to be in a specific single byte character set?
Adám

TIO gives a bad eval error and reports 161 bytes in the message. Either Pyke needs pushing there or something went wrong with a copy and paste here. @Adám if it was 1-1 it would be 41 bytes, utf-8 would be 88, but something definitely looks a bit off.
Jonathan Allan

@JonathanAllan it should be UTF-8. TIO runs it in not UTF-8. I think the byte-count might be wrong because it's measured as UTF-8
Blue

1

Qbasic, 383 bytes

Not impressive, but for what it's worth:

dim a(1to 26)as string
a(1)="lfa
a(2)="ravo
a(3)="harlie
a(4)="elta
a(5)="cho
a(6)="oxtrot
a(7)="olf
a(8)="otel
a(9)="ndia
a(10)="uliet
a(11)="ilo
a(12)="ima
a(13)="ike
a(14)="ovember
a(15)="scar
a(16)="apa
a(17)="uebec
a(18)="omeo
a(19)="ierra
a(20)="ango
a(21)="niform
a(22)="ictor
a(23)="hiskey
a(24)="ray
a(25)="ankee
a(26)="ulu
for i=1to 26
?chr$(i+64);": ";chr$(i+64);a(i)
next

Old BASIC memories… Can't those be stored in a data statement then read inside the for..next loop?
manatwork

@manatwork, that's a good idea; I hadn't thought of it!
anonymous2

Wouldn't simply ?"A: Alfa" and so on be only 360 bytes?
oerkelens

@oerkelens, you could be right. I didn't even consider the possibility. :)
anonymous2

1

///, 220 bytes

/;/: /A;Alfa
B;Bravo
C;Charlie
D;Delta
E;Echo
F;Foxtrot
G;Golf
H;Hotel
I;India
J;Juliet
K;Kilo
L;Lima
M;Mike
N;November
O;Oscar
P;Papa
Q;Quebec
R;Romeo
S;Sierra
T;Tango
U;Uniform
V;Victor
W;Whiskey
X;Xray
Y;Yankee
Z;Zulu

Try it online!

-20 bytes thanks to @ETHproductions.


It's not hard, and it saves 20 bytes: Try it online!
ETHproductions

@ETHproductions I get it... for some reason I was overthinking it. I will update the answer.
Comrade SparklePony
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.