উপাদানগুলির পর্যায় সারণী - কোড গল্ফ


47

ব্যবহারিক গল্ফ উপর ভিত্তি করে - মার্কিন যুক্তরাষ্ট্র

আপনার কাজটি হ'ল অ্যানিওনোকটিয়াম (118) সহ উপাদানটির নাম দেওয়া কোনও উপাদানের সংক্ষেপণ (প্রতীক) সন্ধান করা। উইকিপিডিয়ায় পর্যায় সারণি ব্যবহার করুন ।

অস্পষ্ট ওসিফরেজকে ধন্যবাদ, আপনি সংক্ষিপ্তসারগুলির জন্য এলিমেন্টের একটি সম্পূর্ণ তালিকা http://pastebin.com/DNZMWmuf এ খুঁজে পেতে পারেন ।

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

ইনপুট

ইনপুট stdin, ফাইল, থেকে হতে পারে prompt, inputইত্যাদি

ছক পূরণ করা:

নিম্নলিখিত সমস্ত বৈধ ইনপুট হয়:

Carbon
carbon
CARBON
cArBOn

মূলত, উপাদানটির নাম - কেস সংবেদনশীল।

আপনাকে ভুল বানান বা কোনও অবৈধ উপাদান নাম হ্যান্ডেল করতে হবে না। অবৈধ ইনপুট হ'ল অনির্ধারিত আচরণ।

আউটপুট :

উপাদানটির জন্য প্রতীক। প্রথম চরিত্রটি অবশ্যই মূলধন হবে এবং বাকীটি অবশ্যই ছোট হাতের হবে।

উদাহরণ আউটপুট: C

পরীক্ষার কেস:

Carbon -> C
NiTROGen -> N
Sodium -> Na
Gold -> Au
Silver -> Ag
Tin -> Sn

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

এটি কোড গল্ফ। সবচেয়ে কম কোড জয়!


4
ধন্যবাদ উভয় সংস্করণ ("সালফার" এবং "সালফার") গ্রহণযোগ্য। আপনার প্রোগ্রামটি উভয়কেই পরিচালনা করতে হবে না তবে কেবল একটি।
soktinpk

1
... রেজিক্সগুলি করা অসম্ভব। আপনি আমাদের ভাল পেয়েছেন।
জোশিয়াহ উইনস্লো

2
@ ক্রাইলাইট নিয়মগুলি পড়ার চেষ্টা করুন : " ইনপুট ... উপাদানটির নাম - কেস সংবেদনশীল ... আউটপুট ... প্রথম চরিত্রটি অবশ্যই মূলধন হবে এবং বাকীটি অবশ্যই ছোট হাতের হতে হবে"।
জিম বাল্টার

2
সঠিক বানান (অ্যালুমিনিয়াম) বনাম মার্কিন বানান (অ্যালুমিনিয়াম) সম্পর্কে কী?
পল আর

4
@ কোডড্রেকার হ্যাঁ, যদি ইনপুটটি বৈধ না হয় তবে আপনার প্রোগ্রামটি ক্র্যাশ, হ্যাং, মুদ্রণ Auবা আপনি যা কিছু করতে পারেন। @ পল আর যদি কোনও উপাদানটির বানান করার অনেকগুলি উপায় থাকে (যেমন সালফার বনাম সালফার বা অ্যালুমিনিয়াম বনাম অ্যালুমিনিয়াম) যা আপনার প্রোগ্রামকে সংক্ষিপ্ত করে তোলে use আপনি উভয় কেস পরিচালনা করতে হবে না।
soktinpk

উত্তর:


27

সিজেম, 337 297 293 232 220 201 200 বাইট

leu:E2f^3b2+4%_"53N5903CVCT4":i3/=~Ef+b\%]53b"gØâ^ÃP·^À4ξ^ß^E5^W^Ma{áª^B¤±´oòæ»^XÊQÑ»4žDÙÝòÙ 0^ÝþKa6^Ó£,Ûkû¥¡ùh^E"256b7b6a/0a3**<)5md@5a/,(" ¬^GH/N¿·%^U^RU1²Bd
òë^м~í^ÌéáU"256b25b'Af+2/='J-'Q/"UU"*\)_5=)*E%2<?(\el

উপরের কোডটি ক্যারেট স্বরলিপি ব্যবহার করে, কারণ এতে নিয়ন্ত্রণের অক্ষর রয়েছে characters

24 টি অতিরিক্ত বাইটের (মোট 224 জন) ব্যয়ে, এই অক্ষরগুলি এড়ানো যায়।

leu:E2f^3b2+4%_"53N5903CVCT4":i3/=~Ef+b\%]53b
"' NwEvKv6e8@]jO4G)=b{L!v@hFQ/oCN)*|BRxvNRL+LO7NI(pLs4[d87$Q%8R\t+' M5JU"
{32f-95b}:B~7b6a/0a3**<)5md@5a/,(
"&y.$h*z^t\rQPUc]l8F h$=18C^r|vD~S"
B25b'Af+2/='J-'Q/"UU"*\)_5=)*E%2<?(\el

আপনি সিজেএম ইন্টারপ্রেটারে এই কোডটি চেষ্টা করতে পারেন ।

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

$ base64 -d > elements.cjam <<< bGV1OkUyZl4zYjIrNCVfIjUzTjU5MDNDVkNUNCI6aTMvPX5FZitiXCVdNTNiImfY4oNQt4A0zr6fBTUXDWF74aoCpLG0b/LmuxjKUdG7NMW+RNnd8tmgMJ3+S2E2k6Ms22v7paH5aAUiMjU2YjdiNmEvMGEzKio8KTVtZEA1YS8sKCIgrAdIL06/tyUVElUxskJkCvLrkLx+7Yzp4VUiMjU2YjI1YidBZisyLz0nSi0nUS8iVVUiKlwpXzU9KSpFJTI8PyhcZWw=
$ cksum elements.cjam 
952664534 200 elements.cjam
$ for e in Carbon NiTROGen Sodium Gold Silver Tin; do LANG=en_US cjam elements.cjam <<< $e; echo; done
C                                                                                                       
N                                                                                                       
Na                                                                                                      
Au                                                                                                      
Ag                                                                                                      
Sn

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

প্রথম পদক্ষেপটি এসটিডিআইএন থেকে উপাদানটির নামটি পড়া এবং একটি পরিবর্তে বিশদযুক্ত হ্যাশ ফাংশন প্রয়োগ করা হয়, যা পরিসরে সমস্ত উপাদানগুলির নাম ম্যাপ করে [0, 225] :

l eu :E          " Read a line from STDIN, convert to uppercase and save in E.            ";
2 f^             " XOR each character code with 2.                                        ";
3 b              " Convert to integer; consider the resulting array a base 3 number.      ";
2 + 4 %          " Add 2 and take the result modulo 4. Result: R                          ";
"53N5903CVCT4":i " Push [53 51 78 53 57 48 51 67 86 67 84 52].                            ";
3 / =            " Retrieve the chunk of length 3 that corresponds to R. Result: C        ";
~ E f+           " Add C[2] to all character codes of E.                                  ";
b                " Convert to integer; consider the resulting array a base C[1] number.   ";
\ %              " Take the integer modulo C[0]. Result: M                                ";
] 53 b           " Push H := 53 * R + M.                                                  ";

অনেকগুলি উপাদান চিহ্ন প্রথম এবং দ্বিতীয়, প্রথম এবং তৃতীয়, প্রথম এবং চতুর্থ, প্রথম এবং পঞ্চম বা প্রথম এবং দশম (যা প্রথমদিকে কেবল) উপাদানটির ইংরেজি নামের দ্বারা গঠিত হয়। আমরা যথাক্রমে 0 থেকে 4 পর্যন্ত সংখ্যা দ্বারা এই উপাদানগুলি উপস্থাপন করতে যাচ্ছি। সমস্ত অবশিষ্ট উপাদান (5 দ্বারা প্রতিনিধিত্ব করা) জন্য একটি সারণী লাগবে।

ফলস্বরূপ সারণীটি নিম্নরূপে ঠেলা যায়:

"gØâ^ÃP·^À4ξ^ß^E5^W^Ma{áª^B¤±´oòæ»^XÊQÑ»4žDÙÝòÙ 0^ÝþKa6^Ó£,Ûkû¥¡ùh^E"256b7b6a/0a3**

অক্ষর কোডের অ্যারেটি 256 বেস থেকে 7 টি এবং 6 এর রূপান্তরিত হয় এবং তিনটি 0 এর রান দ্বারা প্রতিস্থাপিত হয়।

এই সিদ্ধান্ত টেবিল ডি:

[4 0 0 0 1 0 0 0 0 0 0 3 0 2 0 1 0 0 0 0 0 0 0 0 4 1 1 0 0 0 0 2 0 4 0 5 2 0 0 3 4 0 0 0 0 4 0 1 0 0 3 1 0 0 2 1 1 1 0 0 0 1 0 5 5 0 0 2 0 0 0 5 5 0 0 0 5 0 3 0 0 0 0 5 0 0 0 0 0 0 0 0 5 2 3 0 1 0 5 0 4 0 0 0 0 4 0 5 0 0 0 0 0 5 0 0 0 2 5 1 4 1 5 0 0 0 5 0 0 5 1 1 0 0 0 0 0 0 2 0 5 0 0 0 3 1 0 2 0 0 0 2 0 0 0 5 0 0 0 0 1 0 0 0 0 0 4 0 2 2 5 2 0 0 5 1 0 0 0 0 4 0 5 0 0 3 5 0 0 5 0 1 0 0 0 2 0 0 0 0 0 5 0 4 0 0 0 0 0 0 0 0 3 0 4 0 0 1 2 2 0 0 0 0 0]

হ্যাশ 1 সহ উপাদানটির প্রয়োজনীয় ক্রিয়াকলাপটি এই অ্যারের প্রথম উপাদানটির সাথে মিলে যায়। অ্যারের উপাদানগুলি যা কোনও উপাদানের হ্যাশের সাথে মিলে না সেগুলিও শূন্য, যা (0 0 0) ↦ 6 সংক্ষেপণের অনুমতি দেয়।

এখন, আমরা হ্যাশ এইচ এর জন্য ডি ব্যাখ্যা করি।

< ) 5 md     " Push D[:H-1] (D[H-1] / 5) (D[H-1] % 5).                                    ";
@ 5a / , (   " Count the number of 5's in D[:H-1] (by splitting at [5]). Result: I        ";

এরপরে, আমরা অনুসন্ধানের টেবিলটি চাপছি। আমরা যদি সিঙ্গেল-চরিত্রের চিহ্নগুলিতে J যুক্ত করি এবং Q কে ইউ এর সাথে প্রতিস্থাপন করি তবে প্রতিটি প্রতীক হ'ল দুটি অক্ষর দীর্ঘ হবে। এটি নিম্নলিখিত হিসাবে ঠেলা যায়:

" ¬^GH/N¿·%^U^RU1²Bd
òë^м~í^ÌéáU"256b25b'Af+2/

চরিত্র কোডের অ্যারেবেস 25 বেস 256 থেকে রূপান্তরিত হয়, চরিত্র কোড একটি ভাবে সংখ্যা বসিয়ে (প্রক্রিয়ারত ক্যারেক্টার এ কাস্ট) যোগ করা পরার এবং ফলাফল দৈর্ঘ্য দুই খন্ডে বিভক্ত হয়।

এটি লুক টেবিল এল:

["QP" "YB" "PD" "SN" "QO" "QT" "QS" "SB" "KJ" "TM" "FE" "PB" "AU" "WJ" "CN" "SG" "RF" "CM" "CU" "HG" "NA" "RG" "AG"]

এখন, আমরা সম্ভাব্য উপাদানগুলির নাম গণনা করতে এগিয়ে চলেছি।

=                " Push L[I].                                                             ";
'J - 'Q / "UU" * " Remove J's and replace Q's with runs of two U's.                       ";
\ ) _ 5 = ) *    " Push S := (D[H-1] % 5 + 1) * ((D[H-1] % 5 + 1 == 5) + 1).              ";
E %              " Push every Sth character of E.                                         ";
2 <              " Discard all but the first two characters.                              ";

স্ট্যাক এখন ধারণ করে

B M N

যেখানে বি বুলিয়ান ডি [এইচ -১] / ৫ , এম হ'ল নামটি সন্ধানের টেবিল থেকে উদ্ধার করা হয় এন হ'ল ই নাম থেকে অক্ষর নির্বাচন করে গঠিত উপাদান নাম is

আমরা প্রায় সম্পন্ন করেছি:

?                " If B, push M; else, push N.                                            ";
( \              " Extract the first character from the string.                           ";
el               " Convert the rest to lowercase.                                         ";

কিন্তু এটা কিভাবে কাজ করে?
ক্লদিউ

2
@ ক্লডিউ: আমি একটি ব্যাখ্যা যুক্ত করেছি।
ডেনিস

3
আমি ব্যাখ্যার প্রথম তৃতীয়টি পড়েছি এবং এখনও পর্যন্ত আমার কাছে যা আছে তা "ম্যাজিক"। অবিশ্বাস্য
মাকিং হাঁস

7
"AcAlAmSbArAsAtBaBkBeBiBhBBrCdCsCaCfCCeClCrCoCnCuCmDsDbDyEsErEuFmFlFFrGdGaGeAuHf HsHeHoHInIIrFeKrLaLrPbLiLvLuMgMnMtMdHgMoNdNeNpNiNbNNoOsOPdPPtPuPoKPrPmPaRaRnReRh RgRbRuRfSmScSgSeSiAgNaSrSTaTcTeTbTlThTmSnTiWUuoUupUusUutUVXeYbYZnZr" = 226 অক্ষর। আপনার সমাধান = 200 অক্ষর। এখানে কিছু সঠিক ভুডো চলছে।
স্কুয়ামিশ ওসিফরেজ

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

43

সি, 452

একটি ভাল হ্যাশ ফাংশন সাহায্য করে। আরও ভাল থাকতে পারে। ( @ ইউগোরেন এট আল দ্বারা প্রস্তাবিত উন্নতিগুলি ))

h;main(c){char*p="Sn)Cu&V$U#Mo#Rf#Sg&Cs#Y+FTa%Rb)S'Nd#GaK&Mg'Zr$PtPm%ReUuo#SmDy(Ac$Lu%W&CaRa(Cf)EuB#Ds%Md$Uus*NpIn$H&YbIr*BeEs*Tc#I(FlRuC#ThSrBh/NaCoLrKr&Nb$CePb$Ne'Am)At*PdLa#Tl%HgMt,CrTbBk$Rh&Rn4TeZn$HfAg%Fm)Xe$AlScFePo$As'HeO#LvN&DbGe#Ho&Mn$Cd+Ni$Rg$HsBr$AuSi#Pr&Uup#Se*Ti#Tm$Er$Sb&PPu&Cm$GdBa'Cn&UutLiFr#Ar#Bi#NoOs%Pa4Cl";while((c=getchar())>64)h=(h+c%32+74)*311%441;while(h)if(*p<65?h-=*p++-34,0:1)for(h--;*++p>96;);do putchar(*p++);while(*p>96);}

মন্তব্যে অসম্পূর্ণ:

int h;
main(c) {

  /* Hashed element symbols. Characters #$% etc. are used as padding: */
  char *p="Sn)Cu&V$U#Mo#Rf#Sg&Cs#Y+FTa%Rb)S'Nd#GaK&Mg'Zr$PtPm%ReUuo#SmDy(Ac$Lu%W&C"
          "aRa(Cf)EuB#Ds%Md$Uus*NpIn$H&YbIr*BeEs*Tc#I(FlRuC#ThSrBh/NaCoLrKr&Nb$CeP"
          "b$Ne'Am)At*PdLa#Tl%HgMt,CrTbBk$Rh&Rn4TeZn$HfAg%Fm)Xe$AlScFePo$As'HeO#Lv"
          "N&DbGe#Ho&Mn$Cd+Ni$Rg$HsBr$AuSi#Pr&Uup#Se*Ti#Tm$Er$Sb&PPu&Cm$GdBa'Cn&Uu"
          "tLiFr#Ar#Bi#NoOs%Pa4Cl";

  /* This hash function gives a unique result for each element: */
  while((c=getchar())>64) h=(h+c%32+74)*311%441;

  /* Find the corresponding position in the hashed data */
  while(h) {
    if(*p<65?h-=*p++-34,0:1) {      /* Step over an abbreviation */
      for(h--;*++p>96;);            /* Skip padding */
    }
  }

  /* Output first uppercase character and all following lowercase characters: */
  do {
    putchar(*p++);
  } while(*p>96);
}

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

হ্যাশ ফাংশন 0 থেকে 440 পর্যন্ত মানগুলিতে টেক্সট স্ট্রিংগুলি মানচিত্র করে "" টিন "হ্যাশ শূন্যে চলে আসে, সুতরাং" স্ন "টেবিলের শুরুতে রয়েছে। পরবর্তী 7 টি পজিশন খালি। কোডটি কমপ্যাক্ট রাখতে, এটি ASCII মান 34 + 7 = 41 (")") দ্বারা নির্দেশিত। এরপরে আসে "তামা" (8), চারটি খালি ঘর (34 + 4 = 38 = "&"), এবং "ভ্যানেডিয়াম" (13)। একটি হ্যাশ গণনা করার পরে, প্রোগ্রামটি টেবিলের মধ্য দিয়ে যায়, প্রতিটি বড় বড় অক্ষরের জন্য 0 বা তার বেশি ছোট অক্ষর অনুসরণ করে 1 বিয়োগ করে এবং বর্ণহীন প্রতিটি অক্ষরের জন্য (ASCII VALUE) -34 বিয়োগ করে। যখন মান শূন্যে পৌঁছে যায়, আমরা সঠিক ফলাফলটি খুঁজে পেয়েছি।


3
@ সোক্তিনপেক ব্রুটে এটি জোর করে :-) ≤512 এর হ্যাশ আকারের সাথে এটিই একমাত্র যার কোনও সংঘর্ষ নেই। আমি যদিও বিকল্প বানানটি যাচাই করে নিই না এবং বিভিন্ন অ্যালগরিদমের সাথে আরও ভাল ফাংশন থাকতে পারে (যেমন সংযোজনের পরিবর্তে এক্সওআর ব্যবহার করা)।
স্কিওমিশ ওসিফরেজ

2
এটি 464 করুন ... আপনার কাছে একটি অপ্রয়োজনীয় জোড়া ধনুর্বন্ধনী রয়েছে।
জিম বাল্টার

1
আপনি যদি ব্যাকরণ সম্পর্কে চিন্তা করেন, এটি দ্ব্যর্থহীন এবং এর অনুমতি দেওয়া উচিত ... এটি আমাদের কাছে কেবল অস্পষ্ট দেখাচ্ছে । ওহ, এবং আপনি অন্য একটি ধরা পড়েছিলাম আমি না! এর জন্য অভিনন্দন ... আমি অ্যালগরিদম আঁটানোর জন্য অনেক চেষ্টা করেছি তবে আপনি সবকিছু ঠিকঠাক পেয়েছেন।
জিম বাল্টার

5
@ হর্ষদীপ - হ্যাশ ফাংশন 0 থেকে 440 পর্যন্ত মানগুলিতে টেক্সট স্ট্রিংগুলি মানচিত্র করে। "টিন" হ্যাশ শূন্যে চলেছে, সুতরাং টেবিলে শুরুতে "স্নেহ" রয়েছে। পরবর্তী 7 টি পজিশন খালি। কোডটি কমপ্যাক্ট রাখতে, এটি ASCII মান 34 + 7 = 41 (")") দ্বারা নির্দেশিত। এরপরে আসে "তামা" (8), চারটি খালি ঘর (34 + 4 = 38 = "&"), এবং "ভ্যানেডিয়াম" (13)। একটি হ্যাশ গণনা করার পরে, প্রোগ্রামটি টেবিলের মধ্য দিয়ে যায়, প্রতিটি বড় বড় অক্ষরের জন্য 0 বা তার বেশি ছোট অক্ষর অনুসরণ করে 1 বিয়োগ করে এবং বর্ণহীন প্রতিটি অক্ষরের জন্য (ASCII VALUE) -34 বিয়োগ করে। যখন মান শূন্যে পৌঁছে যায়, আমরা সঠিক ফলাফলটি খুঁজে পেয়েছি।
স্কুয়ামিশ ওসিফ্রেজ

2
সুন্দর. কিছু অক্ষর এতে সংরক্ষণ করুন: ১ (h+c%32+74)*311%441। 2. ড্রপ pএবং ব্যবহার s। 3. main(c)একটি কমা সংরক্ষণ করে।
ugoren

13

জাভাস্ক্রিপ্ট ES6, 690 708 বাইট

for(n=prompt()[l='toLowerCase'](i=0);!(c='HHeLiBeBCNFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaUNpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnUutFlUupLvUusUuo'.match(x=/[A-Z][a-z]*/g)['HyHeLitBeryBorCarNitFluNeonSoMagAlSiliPhSuChlArgPotCalcScTitVChrManIroCobNicCoppZinGalGeArsSelBrKRubStYttrZirNioMoTecRuthenRhoPaSilvCadInTinAnTelIoXCaeBaLanCePraNeodPromSaEuGadTerDyHoErThuYtteLuHafTaTuRheOsIriPlaGoMerThaLeBiPolAsRadoFrRadiAcThoProtUrNepPluAmCuBerkCaliEiFeMenNoLawRutherDuSeaBohHasMeiDaRoCopeUnuntFleUnunpLivUnunsUnuno'.match(x).map(a=>a[l]()).indexOf(n.slice(0,i++))]);)
alert(c)

প্রথম অ্যারে প্রতীক ধারণ করে এবং দ্বিতীয় অ্যারেটিতে কোন উপাদানটি উল্লেখ করা হচ্ছে তা জানাতে প্রয়োজনীয় ন্যূনতম অক্ষর ধারণ করে। এটি সংক্ষিপ্ত করতে সহায়তা করার জন্য কোর 1024 এবং edc65 ধন্যবাদ। Http://jsfiddle.net/xjdev4m6/2/ এ পরীক্ষা করুন । সামান্য আরও পঠনযোগ্য:

n=prompt().toLowerCase()
e='HyHeLitBeryBorCarNitFluNeonSoMagAlSiliPhSuChlArgPotCalcScTitVChrManIroCobNicCoppZinGalGeArsSelBrKRubStYttrZirNioMoTecRuthenRhoPaSilvCadInTinAnTelIoXCaeBaLanCePraNeodPromSaEuGadTerDyHoErThuYtteLuHafTaTuRheOsIriPlaGoMerThaLeBiPolAsRadoFrRadiAcThoProtUrNepPluAmCuBerkCaliEiFeMenNoLawRutherDuSeaBohHasMeiDaRoCopeUnuntFleUnunpLivUnunsUnuno'.match(x=/[A-Z][a-z]*/g).map(a=>a.toLowerCase())
s='HHeLiBeBCNFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaUNpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnUutFlUupLvUusUuo'.match(x)
for(i=0;i<7;i++){
  if(c=s[e.indexOf(n.slice(0,i))]){
    alert(c,i=8) // i=8 breaks out of the loop so the result is only alerted once
  }
}

নিও নিডোডিয়ামিয়ামের সাথে মেলে এই বিষয়টি ব্যবহার করে আপনি কিছু বাইট শেভ করতে পারেন, নিওনকে তালিকায় পাস করেছে কিনা?
ড্যানক্রাম্ব

1
দুর্ভাগ্যক্রমে লুপটি সংক্ষিপ্ততম স্ট্রিংয়ের সাথে শুরু হয়, সুতরাং এটি হিট Neoহওয়ার আগে এটি হিট হবে Neonকারণ এতে কম অক্ষর রয়েছে।
নিনজাবিয়ারমোনকি

1
এখন পর্যন্ত সংক্ষিপ্ত জেএসের জন্য +1। যদিও আপনি এই ifবিবৃতিটি থেকে মুক্তি পেতে পারেন (এটি একটি নিখুঁত forশর্ত) এবং কোডটি সংক্ষিপ্ত করতে কিছু ভেরিয়েবলের অবস্থানটি ইনলাইন বা স্থানান্তর করতে;)
কোর 1024

2
শুরুতে ).toLowerCase(-> )[L='toLowerCase'](তারপরে শেষে a.toLowerCase(-> a[L](4 টি অক্ষর কাটা উচিত
edc65

10

রুবি 1.9+, 565 471 447 444

একটি ওয়ান লাইনার কারণ "রেজেক্সিসগুলির সাথে কিছুই করা অসম্ভব" ...
( সবেমাত্র আরও একটি রেগেক্স যোগ করে 94 টি অক্ষর সংরক্ষণ করা হয়েছে) (এবং 24 টি সহজ করে)

p"VAlAmA.sArAcAnt|SbA.tBaB..kBeBiB.hBrBDyD.+sD.bE..sErEuF..mFrFlu|F@FlG.dGaGeG|AuH.fH.sHeHoHInIro|FeIrIKrL.vL.+rLaLiLuL|PbM.gMoM.+dM.nM.+tM|HgC.+sC.dC.+fCeCar|C@C....nCaCu|CmCop|CuCoC.rC.lN.+dN.+pNeN..bNit|N@NoNiOsOP..mPa|PdP...aPrP.uP..tPot|KPoPR.*n$RaR.+gR.eRhR.+bR.+fRuS.mScS.+gSeS..v|AgSiSo|NaS.rSTaT.cT.+bTeThu|TmT..lThTin|SnTiTu|WU.u.oU.u.pU.u.sU.u.tUXeY.+bYZ.nZ.r"
.split(/(?<!\|)(?=[A-Z])/).find{|r|/^#{r}/i.match *$*}.gsub /.*\||\W/,''

("পাঠযোগ্যতা" এর জন্য স্ট্রিংয়ের পরে নতুন লাইন, পরীক্ষার জন্য অপসারণ)

ব্যবহার: ruby periodic.rb aluminum$>

ব্যাখ্যা:
নেতৃস্থানীয় রাজধানীগুলিতে স্ট্রিং বিভক্তকরণ উপাদানগুলির সাথে মিলের জন্য রেগেক্সের একটি অ্যারের প্রদান করে। প্রত্যেকটিতে কেবলমাত্র বর্ণমালার অক্ষরগুলি হ'ল সংক্ষিপ্তসার * থেকে। তাদেরকে এমন আদেশ দেওয়া হয় যে কমান্ড লাইনের যুক্তির সাথে তুলনা করার সময় প্রথম মিল খুঁজে পাওয়া যায় *$*the ট্রেলিং জিসব মুদ্রণের আগে নন-আলফা অক্ষরগুলি সরিয়ে দেয়।

* "আয়রন" এর জন্য "ফে" এর মতো অদ্ভুত |সংক্ষেপগুলি একটি উপাদান দ্বারা পরিচালিত হয় : "Iro | Fe"। প্রথম পছন্দটি আসলে যা মিলছে; gsub তারপরে প্রকৃত সংক্ষিপ্তসারটি রেখে '|' পর্যন্ত সমস্ত অক্ষর সরিয়ে দেয়।

পরীক্ষার কাঠামোটির জন্য ( @ স্কাইমিশের তালিকা প্রয়োজন : কার্যকরী ডিরেক্টরিতে 'টেবিল.টেক্সট' হিসাবে ডাউনলোড করা হয়)।

def testfunc(name) 
  #replace with however you call your code
  return `ruby1.9.3 periodic2.rb #{name}`.chomp()
end

elements= File.new('table.txt').readlines.map{|s|s.chomp}

elements.each{|l|
  a,n=l.split(' ')
  r = testfunc(n)
  print "#{n} => #{a} "
  if r!=a then
    print ("FAIL: gave #{r}\n")
    exit
  else 
    print("\tOK\n")
  end
}
print("PASS: #{elements.size} elements matched\n")

1
স্থায়ী
ওভেশন

অবশ্যই এটি কাজ করে: ideone.com/7FZlAt
আশেলী

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

4

রুবি, 1068 বাইট

require"zlib"
require"base64"
$><<eval(Zlib::Inflate.inflate(Base64.decode64"eJwlU8tu2zAQ/Bee+QW6CLYTx0FiR7CdtsmNkmhJCEUKfKQViv57Z9YnE+vd2ZnZ0d+1j2Go6oO2bipzpQ5W6SmPU6nU66S0jatzldqiGmLwVb3VJrZ87NAmoyf9Zx0sKm/alRCnqt5riw514lAvqCejtBm8TZU6Dgp984SGjcMuN3WhUhfsGkNaxqpudHG3Eqv6okdHPLVDXxwIuYmAzCalqn7RxnWkuQN2Z3yPxktH8sbjeQWg8QbV+oceY5iJE1kbDICOHpBE3JNka1zG3wHT3ZeF3hOmw7LYiGpB1XeV+sSIcY4rnwydmQn0hPmYLFduEqpOnhdWg4jcYmlclwyRL3iWdiLTc6s07PNYe0E15wjc+kNPsSOrT9Sm0HLXCZ3BrW0P0iBou9FbyIPSkkfYrs6F1vXsPY9C0aC36entNxVs4LjpZ/EKVX8/ybOnLqzHr8/TzCO0FODgvbreb4dV9bO2npx+oWSTzO6g1ER5bnlZn0eDvIgr9wbqN8kCtIEUG/qVKejFFQvRzYyx2fC6FzxLDAuej4VMg8PzqSeYOHAFrTUtEWAPK80QKQeYwf+B+4gVY5HLXGeaicFKfbS0yGaAvRL35mXsJnwNjnwF3+KHlKv6p4aV4iCIp1lQ3yAyTuLrMxY4k2lXk8kABm8KCXY06wCDR0YDmIiqFf+xfUpzgdYtw+QCc9GAdMqGnDZZtPKAzKLxHYp7JvR+nzNjjZVs7XjhKPpGWpgN8tgYGWNu3rVdcuEnt/DjykRtwG/GOdC5EYfvh5nJWjK+/WJYphts3d2YhZQRrMck0eauPXt9z95jz6/EUuEJEszvyOS9xnsIYcH5xmiLhQ9MkWkDqhcYE0YhvmU0U5ITcMWUGeMjTYgzTqAeUA3W5wFgHMPHhxU7prP4DLD3gmZnY/gGNSflxbIMzROCDnWv31JOUk7yDh3fQf37D7D/kWs="))[gets.downcase[1..5].to_sym]

এসটিডিনের মাধ্যমে ইনপুট।

মৌলিক নামেরগুলির সংক্ষিপ্ততম অনন্য সাবস্ট্রিংগুলি দ্বিতীয় থেকে ষষ্ঠ বর্ণের (বা নামের শেষে এটি খুব ছোট হলে) হয়। সুতরাং আমি কেবল সেগুলি পাচ্ছি এবং তাদের একটি হ্যাশে সন্ধান করছি। আমি হ্যাশটি সংকুচিত করেছিলাম কারণ এটি আরও 200 বাইট সংরক্ষণ করে। হ্যাশটি নিজের মতো দেখতে এখানে রয়েছে:

{ydrog:?H,elium:"He",ithiu:"Li",eryll:"Be",oron:?B,arbon:?C,itrog:?N,xygen:?O,luori:?F,eon:"Ne",
 odium:"Na",agnes:"Mg",lumin:"Al",ilico:"Si",hosph:?P,ulfur:?S,hlori:"Cl",rgon:"Ar",otass:?K,
 alciu:"Ca",candi:"Sc",itani:"Ti",anadi:?V,hromi:"Cr",angan:"Mn",ron:"Fe",obalt:"Co",ickel:"Ni",
 opper:"Cu",inc:"Zn",alliu:"Ga",erman:"Ge",rseni:"As",eleni:"Se",romin:"Br",rypto:"Kr",ubidi:"Rb",
 tront:"Sr",ttriu:?Y,ircon:"Zr",iobiu:"Nb",olybd:"Mo",echne:"Tc",uthen:"Ru",hodiu:"Rh",allad:"Pd",
 ilver:"Ag",admiu:"Cd",ndium:"In",in:"Sn",ntimo:"Sb",ellur:"Te",odine:?I,enon:"Xe",esium:"Cs",
 arium:"Ba",antha:"La",erium:"Ce",raseo:"Pr",eodym:"Nd",romet:"Pm",amari:"Sm",uropi:"Eu",
 adoli:"Gd",erbiu:"Tb",yspro:"Dy",olmiu:"Ho",rbium:"Er",huliu:"Tm",tterb:"Yb",uteti:"Lu",
 afniu:"Hf",antal:"Ta",ungst:?W,heniu:"Re",smium:"Os",ridiu:"Ir",latin:"Pt",old:"Au",ercur:"Hg",
 halli:"Tl",ead:"Pb",ismut:"Bi",oloni:"Po",stati:"At",adon:"Rn",ranci:"Fr",adium:"Ra",ctini:"Ac",
 horiu:"Th",rotac:"Pa",raniu:?U,eptun:"Np",luton:"Pu",meric:"Am",urium:"Cm",erkel:"Bk",alifo:"Cf",
 inste:"Es",ermiu:"Fm",endel:"Md",obeli:"No",awren:"Lr",uther:"Rf",ubniu:"Db",eabor:"Sg",
 ohriu:"Bh",assiu:"Hs",eitne:"Mt",armst:"Ds",oentg:"Rg",opern:"Cn",nuntr:"Uut",lerov:"Fl",
 nunpe:"Uup",iverm:"Lv",nunse:"Uus",nunoc:"Uuo"}

3

CJam, 462 449 434 401 391 384 382

ডেনিসের সাহায্যে।

কোড

নেস্টেড টেরিনারি ifs সম্ভবত সিজেমে এটি করার সঠিক উপায় নয়।

rel_"ruthen"#!"Ru"{_"tel"#!"Te"{__5{\_ceu\@=+_}:U~"PdYbRgCmCn"{\#)!}:X~{;__4U"RnPaCfDs"X{;_3U"NbCsNdPmTbPtTlBkEsFmMdLrMt"X{;2U"MgClCrMnZnAsRbSrZrTcCdSmGdHfReAtNpPuDbBhHsLv"X{;__"sili"#{;__ceu\1=@2=++"SodIroCopSilTinAntThuGolMerLeaTunPotRutSeaHydBorCarNitOxyFluPhoSulVanYttIodUra"\#3d/m[)"_NaFeCuAgSnSbTmAuHgPbWKRfSgHBCNOFPSVYIU"S%\=_"_"={;_1U"Un"={;4="Uu"\+}*}*}"Si"?}*}*}*}*}?}?]W=

ইনডেন্ট সহ:

rel
_"ruthen"#!"Ru"
{
_"tel"#!"Te"
{
  __5{\_ceu\@=+_}:U~
  "PdYbRgCmCn"{\#)!}:X~
  {
   ;__4U
   "RnPaCfDs"X
   {
    ;_3U
    "NbCsNdPmTbPtTlBkEsFmMdLrMt"X
    {
     ;2U
     "MgClCrMnZnAsRbSrZrTcCdSmGdHfReAtNpPuDbBhHsLv"X
     {

       ;__"sili"#
       {
        ;__ceu\1=@2=++"SodIroCopSilTinAntThuGolMerLeaTunPotRutSeaHydBorCarNitOxyFluPhoSulVanYttIodUra"\#3d/m[)"_ Na Fe Cu Ag Sn Sb Tm Au Hg Pb W K Rf Sg H B C N O F P S V Y I U"S%\=_"_"=
        {;_1U"Un"={;4="Uu"\+}*}*
       }
      "Si"?

     }*
    }*
   }*
  }*
 }?
}?
]W=

প্রতীকগুলির মধ্যে অনেকগুলি উপাদানটির নামের প্রথম দুটি অক্ষর। যদি বিবৃতি দেওয়া থাকে তবে এগুলি নেস্টেড দ্বিতীয়-গভীর স্তরে পরিচালিত হয়। আরও অনেকে হ'ল প্রথম এবং তৃতীয় অক্ষর বা প্রথম এবং চতুর্থ অক্ষর - এগুলি ক্রমাগত বাইরের স্তরগুলিতে পরিচালনা করা হয়। যে চিহ্নগুলি কেবলমাত্র প্রথম অক্ষরটি উপস্থিত হয় এবং সম্পূর্ণ অনিয়ম হয় যথাক্রমে পঞ্চম এবং তৃতীয় গভীর স্তরগুলিতে পরিচালনা করা হয়।

সেখানে কয়েকটি বিভ্রান্ত হয়ে যায় ( TelLuriumবনাম ThaLlium, বা SILiconবনাম SILver, বা RUTheniumবনাম RUTherfordium)। এগুলি আলাদাভাবে পরিচালনা করা হয়।

এখানে বেশিরভাগ গল্ফিং করা যেতে পারে, বেশিরভাগ ক্ষেত্রে কোড ব্লককে পুনরায় ব্যবহার এবং অনিয়ম পরিচালনা করা উন্নত করে।


1
কয়েকটি টিপস: ১. অবৈধ উপাদানের নামগুলির জন্য আচরণটি অপরিজ্ঞাত হতে পারে, তাই "RUTHENIUM"=আপনি ব্যবহার করার চেয়ে "RUTHEN"#!। ২. আপনার oপ্রকৃত উপাদান নাম ( ;"Si") এর আগে আপনাকে স্পষ্টভাবে ( ) মুদ্রণ বা কিছু মুছতে হবে না ; ]W=সর্বাধিকতম স্ট্যাক উপাদান ছাড়াই সমস্ত কিছু সরাতে কেবল আপনার কোডের শেষে যুক্ত করুন । ৩. এটি কয়েকটি ব্লককে খালি করে দেয়। যদি Bকোনও বুলিয়ান হয় B{...}{}?এবং এটি B{...}*অর্জন করুন। 4. তিন যদি ব্লক বা স্ট্যাক উপাদান লাগে, যাতে আপনি খাটো করতে পারেন {"Si"}থেকে "Si"
ডেনিস

@ ডেনিস আমি মনে করি আমি এটি সমস্ত যুক্ত করেছি The স্ট্যাক পরিচালনার কাজ দরকার, যদিও - অনেক বেশি _এবং ;সমস্ত জায়গায়

@ ডেনিস এবং আমি ডিফল্ট

3

পিএইচপি, 507 485 476 466 টি অক্ষর

ব্যবহার: GET প্যারামিটার '0' হিসাবে এলিমেন্টের নাম লিখুন - উপাদান.php? 0 = কার্বন

অ্যালগরিদম: স্ট্রিং, সংক্ষেপণ কোড জোড়গুলি বের করে ডেটা স্ট্রিংয়ের মধ্য দিয়ে চলুন। যদি স্ট্রিংংটি পাস হওয়া উপাদানটির শুরুটির সাথে মিলে যায় তবে কী আউটপুট করবেন তা নির্ধারণের জন্য সংক্ষিপ্ত কোডটি ব্যবহার করুন: কোডটি যদি একটি বর্ণ দিয়ে শুরু হয়, তবে স্ট্রিং হিসাবে আউটপুট করুন। যদি এটি একটি সংখ্যা N হয় তবে উপাদানটির প্রথম অক্ষরটি + এনথ বর্ণটি আউটপুট করুন। ইউনুন উপাদানগুলি '|' কোডের সাথে বিশেষভাবে সজ্জিত। যদি কোনও স্ট্রিং খুঁজে পাওয়া যায় না যে পাস করা নামের সাথে মেলে, তবে নামের প্রথম দুটি অক্ষরটিকে সংক্ষেপ হিসাবে আউটপুট করুন।

পঠনযোগ্য কোড:

<?
$l=ucfirst(strtolower($_GET[0]));
for(
  $m[3]="AnSbArs2As2Berk3Boh2BoBCad2Cae3Cali4CarCChl2Ch2Cope5CopCuCu5Da4Du2Ei3Fe3FluFGad2GoAuHaf2Ha2HyHIo0IroFeLaw3LePbLiv2Mag2Man2Mei3Men3MeHgNeod3Nep2Nio3NiNOxOPa5PhPPla3Plu2PotKProm3Pro4Rado4Rhe2Roe5Rub2Ruther6Sa2Sea6SilvAgSoNaSt2SuSTec2Ter3Tha3Thu6TinSnTuWUn|UUVVYtte5YYZin2Z2";
  preg_match('/(.[a-z]*)(.[a-z]*)(.*)/',$m[3],$m)
;)
    if(strstr($l,$m[1]))
        echo($x=$m[2][0])>'@'?$x>'{'?"Uu$l[4]":$m[2]:$l[0].$l[$x],die;
echo$l[0],$l[1];

ঘনীভূত:

<?$l=ucfirst(strtolower($_GET[0]));for($m[3]="AnSbArs2As2Berk3Boh2BoBCad2Cae3Cali4CarCChl2Ch2Cope5CopCuCu5Da4Du2Ei3Fe3FluFGad2GoAuHaf2Ha2HyHIo0IroFeLaw3LePbLiv2Mag2Man2Mei3Men3MeHgNeod3Nep2Nio3NiNOxOPa5PhPPla3Plu2PotKProm3Pro4Rado4Rhe2Roe5Rub2Ruther6Sa2Sea6SilvAgSoNaSt2SuSTec2Ter3Tha3Thu6TinSnTuWUn|UUVVYtte5YYZin2Z2";preg_match('/(.[a-z]*)(.[a-z]*)(.*)/',$m[3],$m);)if(strstr($l,$m[1]))echo($x=$m[2][0])>'@'?$x>'{'?"Uu$l[4]":$m[2]:$l[0].$l[$x],die;echo$l[0],$l[1];

2

জাভাস্ক্রিপ্ট (1100)

সরল বাস্তবায়ন তার সরলতার মধ্যে জ্বলজ্বল। নামের শুরু থেকে অনন্য সাব স্ট্রিংটি কেবল প্রতীককে ম্যাপ করা হয়।

e={hy:"H",he:"He",lit:"Li",bery:"Be",bor:"B",car:"C",nit:"N",ox:"O",flu:"F",neon:"Ne",so:"Na",mag:"Mg",al:"Al",sili:"Si",ph:"P",su:"S",chl:"Cl",arg:"Ar",pot:"K",calc:"Ca",sc:"Sc",tit:"Ti",v:"V",chr:"Cr",man:"Mn",iro:"Fe",cob:"Co",nic:"Ni",copp:"Cu",zin:"Zn",gal:"Ga",ge:"Ge",ars:"As",sel:"Se",br:"Br",k:"Kr",rub:"Rb",st:"Sr",yttr:"Y",zir:"Zr",nio:"Nb",mo:"Mo",tec:"Tc",ruthen:"Ru",rho:"Rh",pa:"Pd",silv:"Ag",cad:"Cd",in:"In",tin:"Sn",an:"Sb",tel:"Te",io:"I",x:"Xe",cae:"Cs",ba:"Ba",lan:"La",ce:"Ce",pra:"Pr",neod:"Nd",prom:"Pm",sa:"Sm",eu:"Eu",gad:"Gd",ter:"Tb",dy:"Dy",ho:"Ho",er:"Er",thu:"Tm",ytte:"Yb",lu:"Lu",haf:"Hf",ta:"Ta",tu:"W",rhe:"Re",os:"Os",iri:"Ir",pla:"Pt",go:"Au",mer:"Hg",tha:"Tl",le:"Pb",bi:"Bi",pol:"Po",as:"At",rado:"Rn",fr:"Fr",radi:"Ra",ac:"Ac",tho:"Th",prot:"Pa",ur:"U",nep:"Np",plu:"Pu",am:"Am",cu:"Cm",berk:"Bk",cali:"Cf",ei:"Es",fe:"Fm",men:"Md",no:"No",law:"Lr",ruther:"Rf",du:"Db",sea:"Sg",boh:"Bh",has:"Hs",mei:"Mt",da:"Ds",ro:"Rg",cope:"Cn",ununt:"Uut",fle:"Fl",ununp:"Uup",liv:"Lv",ununs:"Uus",ununo:"Uuo"}
n=prompt().toLowerCase()
for(i in e)n.indexOf(i)?i:alert(e[i])

2

পাইথন - 652 649 637

আমার হ্যাশ টেবিল বড় হাতের নামের প্রতিটি দ্বিতীয় এবং প্রতিটি তৃতীয় অক্ষরের সংমিশ্রণের উপর ভিত্তি করে:

import re
def f(s,c='S<8F0FCE;2.ACR;J@W$;BI8>GD*?GnHQ<K>&T\(51IAg/Y?S2=169.,325(F(98?>?=^97DUCITX;SJ`0C<P9iLP/G4B,A(-A?(3QLLZ;81D(.4F;L8GaVP[=\=cOX3U,LQl6:E9/OXdSe(4,TSV/=FN98?K.18Q>R$+<GG[IS-4?;4H;T/IMq9<LXMYH4HG<>>KTT,>IIEM,[Nf<,:Z60(A9fImZTMRTcM?[lVg^qC}',e='HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaUNpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnUutFlUupLvUusUuo'):
 U=s.upper();X=lambda x:chr(32+sum(ord(u)-65for u in x))
 return re.findall('[A-Z][a-z]*',e)[zip(c[::2],c[1::2]).index((X(U[1::3]),X(U[:-1:2])))]

এখানে সম্পর্কিত জেনারেটর:

table = '''
H     Hydrogen
He    Helium
...
Uuo   Ununoctium
'''

table = map(lambda l: l.split(), table.split('\n')[1:-1])

abbr = []
for name in map(str.upper, zip(*table)[1]):
    abbr.append(chr(32+sum(ord(u)-65 for u in name[1::3]))+
                chr(32+sum(ord(u)-65 for u in name[:-1:2])))
print 'c=' + ''.join(abbr)
print 'e=' + ''.join(zip(*table)[0])
print 'Unique' if len(table) == len(set(abbr)) else 'Duplicates'

উন্নততার জন্য সম্ভবত বিশেষত দুটি দীর্ঘ পংক্তিকে সংকুচিত করার সুযোগ রয়েছে।

এর সাথে পরীক্ষিত:

for short, name in table:
    if f(name) != short:
        print "Wrong result!"

2

গল্ফস্ক্রিপ্ট - 1052 821

{.91<32*+}%:x;'H
He
Li
Be
B
C
N
F
Ne
Na
Mg
Al
Si
P
S
Cl
Ar
K
Ca
Sc
Ti
V
Cr
Mn
Fe
Co
Ni
Cu
Zn
Ga
Ge
As
Se
Br
Kr
Rb
Sr
Y
Zr
Nb
Mo
Tc
Ru
Rh
Pd
Ag
Cd
In
Sn
Sb
Te
I
Xe
Cs
Ba
La
Ce
Pr
Nd
Pm
Sm
Eu
Gd
Tb
Dy
Ho
Er
Tm
Yb
Lu
Hf
Ta
W
Re
Os
Ir
Pt
Au
Hg
Tl
Pb
Bi
Po
At
Rn
Fr
Ra
Ac
Th
Pa
U
Np
Pu
Am
Cm
Bk
Cf
Es
Fm
Md
No
Lr
Rf
Db
Sg
Bh
Hs
Mt
Ds
Rg
Cn
Uut
Fl
Uup
Lv
Uus'n/'hy
he
lit
bery
bor
car
nit
flu
neon
so
mag
al
sili
ph
su
chl
arg
pot
calc
sc
tit
v
chr
man
iro
cob
nic
copp
zin
gal
ge
ars
sel
br
k
rub
st
yttr
zir
nio
mo
tec
ruthen
rho
pa
silv
cad
in
tin
an
tel
io
x
cae
ba
lan
ce
pra
neod
prom
sa
eu
gad
ter
dy
ho
er
thu
ytte
lu
haf
ta
tu
rhe
os
iri
pla
go
mer
tha
le
bi
pol
as
rado
fr
radi
ac
tho
prot
ur
nep
plu
am
cu
berk
cali
ei
fe
men
no
law
ruther
du
sea
boh
has
mei
da
ro
cope
ununt
fle
ununp
liv
ununs
ununo'n/[{x\?)}/]1?=

ব্যাখ্যা:

{        }%                              Map these ops to the input string:
 .91<32*+                                   Add 32 if less than 91 (convert to lowercase, in essence)
           :x;                           Store to x.
              '...'  '...'               The first array is the symbols, the second is the names.
                                         (stripped down to the minimum necessary)
                   n/     n/             Convert them to arrays.
                             {    }/     For each element in the name array...
                              x\?)          ...return 1 if the element is found in the input.
                            [       ]    Gather every element in an array...
                                     1?  Find the 1 in the array (the only element name match)...
                                       = ...then return that symbol in the symbol array.
                               (implied) Print.

11
ওএমজি, গল্ফস্ক্রিপ্টের একটি অংশ যা 10 টি অক্ষর বা তার চেয়ে কম নয়!
ওয়েলওয়েস্ট

1
বিভাজক হিসাবে নতুন লাইনের সাথে একটি স্ট্রিং ব্যবহার করে এবং তারপরে স্ট্রিংগুলির সেই অ্যারেটিতে আপনি ব্যাপক উন্নতি পেতে পারেনn/
পিটার টেলর

আমি শেষবারের মতো করেছিলাম, হেক কেন আমি তা ভেবে দেখিনি? এখন আপডেট হচ্ছে।
জোশিয়াহ উইনস্লো

2

হাস্কেল, 920 817 807 776 চার্স

কোনও চিহ্নের জন্য কোনও উপাদানের নামের অক্ষরগুলি কীভাবে অন্তর্ভুক্ত করা হয়েছে এবং কিছুটা ঝাঁকুনির জন্য নিয়মকানুন তৈরি করার জন্য অনেক দীর্ঘ সময় কাজ করার পরে, আমি এমন একটি স্ক্রিপ্ট লিখতে সক্ষম হয়েছি যা উপাদানটিকে প্রতীক হিসাবে সহজেই অনুবাদ করে। আয়রন আমার জন্য সমস্যা ছিল, কারণ আমি গোল্ড, সিলভার, টিএন, এলইডি, সোডিয়াম, মেরকুরি, এন্টিমনি, পোটাসিয়াম এবং টুংস্টেনের কয়েকটি অক্ষরকে নমুনা করতে পারতাম এবং এগুলিকে অব্যবহৃত পর্যায়ক্রমিক প্রতীক হিসাবে রূপান্তর করতাম (যে কোনও নমুনা বেছে নিলে এটি সংহত করার পক্ষে সহজতর হয়েছিল) এগুলিকে বিদ্যমান নিয়মে) এবং তারপরে প্রতীকী রূপান্তরকরণের পরে অনুবাদ করা; আয়রন অবশ্য সমস্যা ছিল, কারণ ইর, আইও এবং ইন সবই ইতিমধ্যে ব্যবহৃত। এটি প্রাথমিকভাবে 920 টি অক্ষর ছিল, তবে আমি বুঝতে পেরেছিলাম যে চূড়ান্ত প্যাটার্ন ম্যাচটি (বৃহত্তম) সেখানে থাকার দরকার নেই, কারণ এটি হয় জিনিসগুলি (যা এটি করেনি) দিয়ে পড়তে দেয় বা তাদের সমস্তটির সাথে মিলে যায়; তাই আমি এটি একটি ক্যাচ-অল ওয়াইল্ডকার্ড দিয়ে প্রতিস্থাপন করেছি। এরপরে, আমি আরও 817 থেকে 808 পর্যন্ত বুনো কার্ড ব্যবহার করে কিছু নিদর্শনকে সংক্ষেপে এভাবে গল্ফ করেছিলাম যে তারা এখনও সেই উপাদানটির নামের সাথে অনন্য ছিল (যেমন, 'ডাব্লু' নামের একমাত্র উপাদান যার নাম লরেনসিয়াম, তাই "* ডাব্লু "এর সাথে মেলে যা" আইন "এর চেয়ে কম অক্ষরে 1) character

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

সম্পাদনা 1

কেস এক্সপ্রেশনটিকে প্যাটার্ন ম্যাচের পরিবর্তে এটিকে 77 776 টি অক্ষরে প্রতিস্থাপন করে (এটি বোঝা যায় কারণ কেস এক্সপ্রেশন অপারেন্ডের ক্ষেত্রে কোনও অভিব্যক্তির বিপরীতে কাঁচা অপরেন্ডটি পরীক্ষা করছিল), অপ্রয়োজনীয় বন্ধনী সরিয়ে পুনরায়- eস্ট্রিংগুলির তালিকার পরিবর্তে একটি নিউলাইন-বিস্মৃত স্ট্রিং হিসাবে প্রকাশ করা এবং পরে এটি মূল ফাংশনে বিভক্ত করা। এই পরিবর্তনগুলি নিখুঁতভাবে গল্ফ করে চলেছে বলে আমি মানব-পঠনযোগ্য সংস্করণটি অপরিবর্তিত রেখেছি।

import Data.Char
m _[]=True;m[]_=False;m k@(c:s)x@(y:z)=case y of{']'->m s x;'['->let(i,(_:j))=break(==']')z in(c`elem`i)&&m s j;'?'->m s z;'*'->null z||m k z||m s z||m s x;_->c==y&&m s z};p(a:t)(x:y)=case a of{'.'->x:p t y;'_'->p t y;_->a:p t y};p[]_=[];e="Iro\nUn\nCu Pa Ro Y*e\nR*r\n*pp\nCop Rado\nSea Thu\nCali Da P*ot Tha\nA*s Boh ?ub Ch [CG]ad [HM]a Liv Nep Plu Rhe S[ato] Tec Tin Z\nB*k Cae [ES]i *w Nio [FM]e N*d Pro Pla Ter\nBor Car Flu Hy Io Nit Ox Ph Su [UVY]\n*";s="Fe ._._. .____. .f .u .n ._____. .___. ._. .__. . ..";t"Sv"="Ag";t"Sd"="Na";t"Go"="Au";t"Le"="Pb";t"Mc"="Hg";t"An"="Sb";t"Ps"="K";t"Tu"="W";t"Tn"="Sn";t x=x;main=interact$unlines.map(\(a:b)->let y=toUpper a:map toLower b in t$p(snd.head.filter(any(m y).fst)$zip(map words$lines e)$words s)y).lines

মানব-পঠনযোগ্য সংস্করণ (নিউলাইনস, স্পেসিং, ভার্বোজের নাম, মন্তব্য: ২৩১১ অক্ষর)

import Data.Char

-- Test against search-pattern strings
match _ [] = True
match [] _ = False
match k@(c:s) x@(y:z) = case y of
']' -> match s x
'[' -> let (i,(_:j)) = break (==']') z in (c `elem` i) && match s j
'?' -> match s z
'*' -> null z || match k z || match s z || match s x
 _  -> c == y && match s z

-- Write according to name-pattern string
pattern (a:t) (x:y) = case a of
'.' -> x : (pattern t y)
'_' -> (pattern t y)
 _  -> a : (pattern t y)
pattern [] _ = []

-- Search-Patterns for the elements
elements=["Iro", -- Iron -> Fe
      "Un", -- UnUn-Blank-ium (1,3,5)
      "Cu Pa Ro Y*e", -- CuriuM PallaDium RoentGenium YtterBium (1,6)
      "R*r", -- Rutherfordium (1,f)
      "*pp", -- Copper (1,u)
      "Cop Rado", -- Copernicium Radon (1,n)
      "Sea Thu", -- SeaborGium ThuliuM (1,7)
      "Cali Da P*ot Tha", -- CaliFornium DarmStadtium ProtActinium PotaSsium (1,5)

      {- AsTatine ArSenic BoHrium DuBnium RuBidium ChLorine ChRome CaDmium
      GaDolinium HaFnium HaSsium MaNganese MaGnesium LiVermorium NePtunium
      PlUtonium RhEnium SaMarium StRontium SoDium TeChnetium TiN ZiNc
      ZiRconium (1,3) -}

      "A*s Boh ?ub Ch [CG]ad [HM]a Liv Nep Plu Rhe S[ato] Tec Tin Z", 

      {- BerKelium CaeSium EinSteinum SilIcon SilVer LawRencium NioBium
      FerMium MenDelevium MeiTnerium MerCury NeoDymium ProMethium PlaTinum
      TerBium (1,4) -}

      "B*k Cae [ES]i *w Nio [FM]e N*d Pro Pl Ter",

      {- Boron Carbon Fluorine Hydrogen Nitrogen Oxygen Phosphorous Sulphur
      Uranium Vanadium Yttrium (1) -}

      "Bor Car Flu Hy Io Nit Ox Ph Su [UVY]",
      "*"] -- Everything else (1,2)

-- respective naming patterns for searches
symbol = "Fe ._._. .____. .f .u .n ._____. .___. ._. .__. . .."

-- Translate fake symbols
translate x = case x of
"Sv" -> "Ag" -- SilVer
"Sd" -> "Na" -- SoDium
"Go" -> "Au" -- GOld
"Le" -> "Pb" -- LEad
"Mc" -> "Hg" -- MerCury
"An" -> "Sb" -- ANtimony
"Ps" -> "K" -- PotaSsium
"Tu" -> "W" -- TUngsten
"Tn" -> "Sn" -- TiN
  _  -> x  -- Keep everything else the same

main = interact $ unlines . map (\(a:b) -> let y = (toUpper a) : (map toLower b) in t $ p (snd.head.filter (any (m y) . fst) $ zip (map words e) $ words s) $ y) . lines

যদি কেউ এর যে কোনও অংশের ব্যাখ্যায় আগ্রহী হন তবে নির্দ্বিধায় জিজ্ঞাসা করুন।


2

সি # (826)

সবচেয়ে বড় নয় তবে আমি ভেবেছিলাম আমি সি # এর প্রতিবন্ধকতা দিয়ে চেষ্টা করব try

using System;class P{static string s="HyHHe1Li1Be1BoBCaCNitNOxOFlFNe1SoNaMaMgAl1Sil1PhPSuSChClAr1PotKCal1Sc1Tit1VaVChrCrManMnIrFeCo1Ni1CopCuZiZnGa1Ge1ArsAsSe1Br1Kr1RuRbStSrYtYZirZrNioNbMo1TecTcRut1Rh1PaPdSiAgCadCdIn1TiSnAnSbTel1IoIXe1CaeCsBa1La1Ce1Pra1NeoNdPrPmSaSmEu1GadGdTeTbDy1Ho1Er1ThTmYttYbLu1HaHfTa1TuWRheReOs1Iri1PlPtGoAuMeHgThaTlLePbBi1Po1AsAtRaRnFr1Rad1Ac1Tho1ProPaUrUNepNpPluPuAm1CuCmBerBkCaliCfEiEsFeFmMenMdNo1LawLrRuthRfDuDbSeaSgBohBhHasHsMeiMtDaDsRoRgCopeCnUnUutFle1UnuUupLivLvUnunUus",n,t,k;static void Main(){var d=new System.Collections.Specialized.StringDictionary();while(s!=""){k=g;d[k]=g;if(d[k]=="1")d[k]=k.Substring(0,2);};t=Console.ReadLine();while(t!=""&!d.ContainsKey(t))t=t.Remove(t.Length-1);Console.Write(d[t]);}static string g{get{n="";do n+=s[0];while((s=s.Remove(0,1))!=""&&s[0]>96);return n;}}}

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

এই স্ক্রিপ্টটি বড় স্ট্রিংটিকে নির্বিঘ্ন করে এবং বড় অক্ষর থেকে তৈরি অভিধানে এটি না পাওয়া পর্যন্ত ইনপুটযুক্ত স্ট্রিংয়ের শেষে কোনও অক্ষর কেটে দেয়।

(আমার সি # সম্পর্কে আমার জ্ঞান যুক্ত করা উচিত আশ্চর্যজনক নয় এবং আমি যে আসল জমা দিয়েছিলাম তা কেবল আমার জানার জিনিসগুলি ব্যবহার করা ছিল তবে পরবর্তীকালে আমি আমার দ্বারা অন্যের দ্বারা আমার দিকে ইঙ্গিত করেছিলাম had


আপনি সমস্ত ধরণের সংজ্ঞা এতে পরিবর্তন করে আরও গল্ফ করতে পারেন var। আপনি যদি ব্লক করে থাকেন তবে একক বিবৃতি দেওয়ার পরে বন্ধনীগুলি সরিয়ে আরও কিছু সঞ্চয় করতে পারেন। আপনি যদি t.Substring(int, int)একটি নিয়োগ করেন আপনি Func<int, int, string>অন্য দম্পতি সংরক্ষণ করতে পারেন save
ব্র্যান্ডন

আমি বেশিরভাগ ভেরিয়েবল ডিএফ "ভার" বানিয়েছি তবে মনে হয় আমি এক বা দুটি মিস করেছি, বন্ধনীবিহীন ifs সম্পর্কেও পুরোপুরি ভুলে গেছি, ধন্যবাদ।
miethpo

আপনি এটির আরও 5 অক্ষরের শেভ করতে varing string[] rদ্বারা এবং আরও 3 varing string t = Console...., সর্বশেষে, আপনি আরো 7 পরিবর্তন করে সংরক্ষণ করব return new string[]মধ্যে return new[]খুব শেষে।
ব্র্যান্ডন

মুষ্টিমেয় অন্যান্য কিছু ছোট ছোট উন্নতি রয়েছে যা আপনি if(...) break;লুপ থেকে বেরিয়ে আসার শর্তগুলির জন্য আপনার যুক্তি সরিয়ে নেওয়ার মতো সম্পাদন করতে পারেন । do { } while(..)আপনার নিষ্কাশন পদ্ধতিতে এটির মতো আরও কয়েকটি লজিক বিপর্যয় প্রয়োগ করা যেতে পারে । এন্ট্রি মামলার জন্য পৃথক যৌক্তিক অপারেশন যুক্ত করার চেয়ে এটি সংক্ষিপ্ত। আমি আপনার কোডে একটি সম্পাদনা পোস্ট করেছি যা এখনও এই সাইটে আমার কম রেপ করার কারণে পর্যালোচনা / গ্রহণযোগ্যতা প্রয়োজন। এটি 870 টি অক্ষরে নেমেছে।
নিকোলাস

1
@ নিকোলাস আমি নিশ্চিত নই যে অন্য কারও কোড গল্ফটি ভদ্রভাবে সম্পাদনা করা ...
miethpo

1

জাভাস্ক্রিপ্ট (E6) 1433

এখানে আন উচ্চতর সীমা

F=n=>'0H0HYDROGEN0He0HELIUM0Li0LITHIUM0Be0BERYLLIUM0B0BORON0C0CARBON0N0NITROGEN0O0OXYGEN0F0FLUORINE0Ne0NEON0Na0SODIUM0Mg0MAGNESIUM0Al0ALUMINIUM0Si0SILICON0P0PHOSPHORUS0S0SULFUR0Cl0CHLORINE0Ar0ARGON0K0POTASSIUM0Ca0CALCIUM0Sc0SCANDIUM0Ti0TITANIUM0V0VANADIUM0Cr0CHROMIUM0Mn0MANGANESE0Fe0IRON0Co0COBALT0Ni0NICKEL0Cu0COPPER0Zn0ZINC0Ga0GALLIUM0Ge0GERMANIUM0As0ARSENIC0Se0SELENIUM0Br0BROMINE0Kr0KRYPTON0Rb0RUBIDIUM0Sr0STRONTIUM0Y0YTTRIUM0Zr0ZIRCONIUM0Nb0NIOBIUM0Mo0MOLYBDENUM0Tc0TECHNETIUM0Ru0RUTHENIUM0Rh0RHODIUM0Pd0PALLADIUM0Ag0SILVER0Cd0CADMIUM0In0INDIUM0Sn0TIN0Sb0ANTIMONY0Te0TELLURIUM0I0IODINE0Xe0XENON0Cs0CAESIUM0Ba0BARIUM0La0LANTHANUM0Ce0CERIUM0Pr0PRASEODYMIUM0Nd0NEODYMIUM0Pm0PROMETHIUM0Sm0SAMARIUM0Eu0EUROPIUM0Gd0GADOLINIUM0Tb0TERBIUM0Dy0DYSPROSIUM0Ho0HOLMIUM0Er0ERBIUM0Tm0THULIUM0Yb0YTTERBIUM0Lu0LUTETIUM0Hf0HAFNIUM0Ta0TANTALUM0W0TUNGSTEN0Re0RHENIUM0Os0OSMIUM0Ir0IRIDIUM0Pt0PLATINUM0Au0GOLD0Hg0MERCURY0Tl0THALLIUM0Pb0LEAD0Bi0BISMUTH0Po0POLONIUM0At0ASTATINE0Rn0RADON0Fr0FRANCIUM0Ra0RADIUM0Ac0ACTINIUM0Th0THORIUM0Pa0PROTACTINIUM0U0URANIUM0Np0NEPTUNIUM0Pu0PLUTONIUM0Am0AMERICIUM0Cm0CURIUM0Bk0BERKELIUM0Cf0CALIFORNIUM0Es0EINSTEINIUM0Fm0FERMIUM0Md0MENDELEVIUM0No0NOBELIUM0Lr0LAWRENCIUM0Rf0RUTHERFORDIUM0Db0DUBNIUM0Sg0SEABORGIUM0Bh0BOHRIUM0Hs0HASSIUM0Mt0MEITNERIUM0Ds0DARMSTADTIUM0Rg0ROENTGENIUM0Cn0COPERNICIUM0Uut0UNUNTRIUM0Fl0FLEROVIUM0Uup0UNUNPENTIUM0Lv0LIVERMORIUM0Uus0UNUNSEPTIUM0Uuo0UNUNOCTIUM'
.match(RegExp('([^0]+)0+'+n,'i'))[1]

টেস্ট ফায়ারফক্স / Firebug কনসোলে

F('Rutherfordium')

আউটপুট

Rf

1

স্মাইলব্যাসিক, 1763 1418 1204 1128 বাইট

INPUT E$Hro$="H
Hiu$="He
Lhi$="Li
Byl$="Be
Bon$="B
Cbo$="C
Nro$="N
Oge$="O
For$="F
Nn$="Ne
Siu$="Na
Mne$="Mg
Ami$="Al
Sic$="Si
Psp$="P
Sfu$="S
Cor$="Cl
Aon$="Ar
Pas$="K
Cci$="Ca
Snd$="Sc
Tan$="Ti
Vad$="V
Com$="Cr
Mga$="Mn
In$="Fe
Cal$="Co
Nke$="Ni
Cpe$="Cu
Zc$="Zn
Gli$="Ga
Gma$="Ge
Aen$="As
Sen$="Se
Bmi$="Br
Kpt$="Kr
Rid$="Rb
Son$="Sr
Yri$="Y
Zco$="Zr
Nbi$="Nb
Myb$="Mo
Thn$="Tc
Rhe$="Ru
Rdi$="Rh
Pla$="Pd
Sve$="Ag
Cmi$="Cd
Iiu$="In
T$="Sn
Aim$="Sb
Tlu$="Te
Iin$="I
Xon$="Xe
Csi$="Cs
Biu$="Ba
Lth$="La
Pse$="Pr
Ndy$="Nd
Pme$="Pm
Sar$="Sm
Eop$="Eu
Gol$="Gd
Tbi$="Tb
Dpr$="Dy
Hmi$="Ho
Eiu$="Er
Tli$="Tm
Yer$="Yb
Let$="Lu
Hni$="Hf
Tta$="Ta
Tgs$="W
Rni$="Re
Oiu$="Os
Idi$="Ir
Pti$="Pt
Gd$="Au
Mcu$="Hg
Tll$="Tl
Ld$="Pb
Bmu$="Bi
Pon$="Po
Aat$="At
Ron$="Rn
Fnc$="Fr
Riu$="Ra
Ain$="Ac
Tri$="Th
Pta$="Pa
Uni$="U
Ntu$="Np
Pto$="Pu
Ari$="Am
Ciu$="Cm
Bke$="Bk
Cif$="Cf
Est$="Es
Fmi$="Fm
Mde$="Md
Nel$="No
Lre$="Lr
Dni$="Db
Sbo$="Sg
Bri$="Bh
Hsi$="Hs
Mtn$="Mt
Dms$="Ds
Rnt$="Rg
Cer$="Cn
Unt$="Uut
Fro$="Fl
Unp$="Uup
Ler$="Lv
Uns$="Uus
Uno$="Uuo
S$=VAR(E$[0]+MID$(E$,3,2))IF"Cm"==S$*!VAL(".1"+E$[1])THEN S$="Ce
IF LEN(E$)>12THEN S$="Rf
?S$

আমি 3 টি চরিত্র বেছে নিয়েছি যা বেশিরভাগ অনন্য ছিল (0 তম, 2 য় এবং 3 য়), যা দুটি বিশেষ ক্ষেত্রে ফেলেছে: সেরিয়াম / কারিয়াম দুটি "সিইউ", এবং রুথেনিয়াম / রাদারফোর্ডিয়াম উভয়ই "রাহে"। সিউ-র জন্য আমি নামের দ্বিতীয় অক্ষরটি "ই" বা "ই" কিনা এবং "রাহে" -র জন্য আমি নামের দৈর্ঘ্য পরীক্ষা করে দেখছি।

VAR(name)সেই নামের সাথে ভেরিয়েবল ফেরত দেয়। পরিবর্তনশীল নামগুলি সংবেদনশীল are


0

টি-এসকিউএল, 900 894 676 বাইট

SELECT ISNULL((SELECT LEFT(value,3)FROM
STRING_SPLIT('Sb An-As Ars-At Ast-Bk Berk-Bh Boh-B  Bor-Cd Cad-Cs Cae-Cf Cali-C  Car-Cl Chl-Cr Chr-Cn Cope-Cu Copp-Cm Cu-Ds Da-Db Du-Es Ei-Fm Fe-F  Flu-Gd Gad-Au Go-Hf Haf-Hs Has-H  Hy-I  Io-Fe Iro-Lr Law-Pb Le-Lv Liv-Mg Mag-Mn Man-Mt Mei-Md Men-Hg Mer-Nd Neod-Np Nep-Nb Nio-N  Nit-O  Ox-Pd Pa-P  Ph-Pt Pla-Pu Plu-K  Pot-Pm Prom-Pa Prot-Rn Rado-Re Rhe-Rg Ro-Rb Rub-Rf Ruther-Sm Sa-Sg Sea-Ag Silv-Na So-Sr St-S  Su-Tc Tec-Tb Ter-Tl Tha-Tm Thu-Sn Tin-W  Tu-UuoUnuno-UupUnunp-UusUnuns-UutUnunt-U  Ur-V  V-Yb Ytte-Y  Yttr-Zn Zin-Zr Zir'
    ,'-')m,t WHERE e LIKE SUBSTRING(value,4,9)+'%'),
(SELECT UPPER(LEFT(e,1))+LOWER(SUBSTRING(e,2,1))FROM t))

রিটার্নগুলি কেবল পঠনযোগ্যতার জন্য, দ্বিতীয় লাইনটি একটি খুব দীর্ঘ স্ট্রিং।

STRING_SPLIT এসকিউএল 2016 এবং উচ্চতরগুলিতে সমর্থিত।

ইনপুট পূর্ব বিদ্যমান টেবিল মাধ্যমে নেওয়া হয় টন সঙ্গে varchar ক্ষেত্র , আমাদের আই মান অনুযায়ী । আউটপুট স্পেস দিয়ে 3 টি অক্ষরে প্যাড করা হয়; নিয়মগুলি ঠিক ছিল কিনা তা সম্পর্কে অস্পষ্ট ছিল। প্রয়োজনে আমি যুক্ত করতে পারি TRIM

ইনপুট টেবিল প্রতিটি উপাদান নামের জন্য সবচেয়ে কম অনন্য প্রিফিক্স সঙ্গে সব উপাদান প্রতীক (3 অক্ষর প্যাডেড) একটি তালিকা দিয়ে তৈরি করা টেবিল সাথে যোগ করা হয় ( Xজন্য যথেষ্ট জেনন কিন্তু রাদারফোর্ডিয়াম প্রয়োজন Rutherথেকে আলাদা, তাদের রুথেনিয়াম )।

সম্পাদনা 1 : তালিকা থেকে 44 টি এন্ট্রি সরিয়ে 218 টি অক্ষর সংরক্ষণ করা হয়েছে যার প্রতীক তাদের নামের প্রথম দুটি অক্ষর; ISNULLপ্রথম ক্যোয়ারী কোনও সারি ফেরত দিতে ব্যর্থ হয় কিনা তা ফাংশনটি ব্যবহৃত হয় এবং যদি তা হয় তবে ইনপুট উপাদানটির নাম থেকে প্রতীকটি (সঠিকভাবে কেসড) উত্পন্ন করে।

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