একটি সংক্ষিপ্ত রূপ তৈরি


24

উদ্দেশ্য

আপনার লক্ষ্য এমন একটি প্রোগ্রাম তৈরি করা যা কোনও ইনপুটকে এর সংক্ষিপ্ত রূপে রূপান্তর করে। আপনার ইনপুটটিতে কেবলমাত্র অক্ষর এবং স্পেস থাকবে তা গ্যারান্টিযুক্ত। ইনপুট শব্দের মধ্যে ঠিক একটি স্থান থাকবে। আপনাকে অবশ্যই ইনপুটটির সংক্ষিপ্তসার আউটপুট করতে হবে।

বিধি

  • আপনার কোডটি কেস-সংবেদনশীল হতে পারে না (যেমন fooএবং Fooএকই রকম)
  • আপনার কোডটি অবশ্যই নিম্নলিখিত শব্দগুলিকে উপেক্ষা করবে এবং এটিকে সংক্ষিপ্ত আকারে রাখবে না: and or by of
  • আপনি ধরে নিতে পারবেন না যে শব্দগুলি সমস্ত ছোট হাতের অক্ষর।
  • অক্ষরের মধ্যে কোনও বিচ্ছেদ ছাড়াই আউটপুটটি পুরোপুরি মূলধন করতে হবে।
  • একটি অনুবর্তনযোগ্য নতুন লাইন গৃহীত হয়েছে তবে এটি প্রয়োজনীয় নয়।
  • যদি আপনার ভাষাতে একটি সংক্ষিপ্ত বিবরণ ফাংশন অন্তর্নির্মিত থাকে তবে আপনি এটি ব্যবহার করতে পারবেন না

উদাহরণ

(ইনপুট / আউটপুট গোষ্ঠীভুক্ত)

United States of America
USA

Light Amplification by Stimulation of Emitted Radiation
LASER

united states of america
USA

Jordan Of the World
JTW

স্কোরিং

এটি একটি চ্যালেঞ্জ তাই সংক্ষিপ্ততম কোড জিততে পারে।

লিডারবোর্ড

var QUESTION_ID=75448,OVERRIDE_USER=8478;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


আমি 2 টি পরীক্ষার মামলা যুক্ত করেছি।
অ্যাপলেট 123

1
@ অ্যাপলেট 123 আপনি কি চান তা নিশ্চিত? কারণ যদি এটি হয় তবে চ্যালেঞ্জটি ফাঁকা স্থানগুলি এবং ছোট হাতের অক্ষরগুলি সরিয়ে ফেলার জন্য উত্সাহিত করবে। (উদাহরণস্বরূপ রেটিনার 4 বাইট T` l:)
মার্টিন এন্ডার

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

2
এটি মার্কিন যুক্তরাষ্ট্রে সংক্ষিপ্ত রূপ নয়, এটি একটি সংক্ষিপ্ত বিবরণ রাখে? নাসা একটি সংক্ষিপ্ত রূপ হিসাবে আপনি "নাসা" শব্দটি বলেছেন। আপনি যদি অক্ষরগুলি বানান করেন তবে এটি সংক্ষিপ্ত রূপ নয়।
কর্সিকা

1
আমরা কি ধরে নিতে পারি ইনপুটটির সর্বদা খালি খালি আউটপুট থাকবে?
ডাউনগোট

উত্তর:


10

পাইথ, 25 21 20 বাইট

shM-crz1dc4."@YK½¼

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

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

ব্যাখ্যা

shM-crz1dc4। "@ YK½¼ # z = ইনপুট

     rz1 # ইনপুটকে বড়হাতে রূপান্তর করুন
    স্পেসে সিডি # বিভক্ত ইনপুট
         c4। "@ YK½¼ # একটি প্যাকযুক্ত স্ট্রিং থেকে শব্দের একটি তালিকা তৈরি করুন যা উপেক্ষা করা হবে
   - # এই শব্দগুলি ফিল্টার করুন
 এইচএম # কেবলমাত্র সমস্ত শব্দের প্রথম অক্ষর নিন
এস # তাদের সাথে একটি স্ট্রিংয়ে যোগ দিন

প্যাকড স্ট্রিং হয়ে যায় ANDBYOROF


একটি ছোট স্ট্রিং প্যাকিং ট্রিক: ."@YK½¼একটি বাইট ওভার সাশ্রয় "ANDORBYOF। এটি মূলত @ANDBYOROFপ্যাকড
জাকুবে

ডাং, অ-অসি-অক্ষর মুছে ফেলা হয়েছে। @ANDBYOROFআপনি কী পান তা কেবল প্যাক করুন এবং দেখুন।
জাকুবে

@ জাকুব ধন্যবাদ! এটি আগে প্যাক করার চেষ্টা করা হয়েছে, কিন্তু সর্বদা একই দৈর্ঘ্য বা তার বেশি দিয়ে শেষ হয়।
ডেনকার

10

জেলি , 21 20 বাইট

,“°ɲịĊs°gɗ»ṣ€⁶Œuḟ/Ḣ€

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

(-1 @ ডেনিসকে ধন্যবাদ।)

,“°ɲịĊs°gɗ»              Pair input with the string "OR OF by AND"
           ṣ€⁶           Split both by spaces
              Œu         Uppercase
                ḟ/       Reduce filter (removing ignored words from input)
                  Ḣ€     Keep first letters of remaining words

জেলির অভিধানটি কিছুটা অদ্ভুত যে ANDএর বড় byহাতের অক্ষরে এখনও ছোট হাতের অক্ষরে রয়েছে ...


8

রেটিনা, 29 31 36 বাইট

T`l`L
 |(AND|OR|BY|OF)\b|\B.

শেষে নতুন লাইন উদ্দিষ্ট।

5 টি বাইট সংরক্ষণের জন্য মার্টিন বাটনারকে ধন্যবাদ

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

T`l`L                  # Replace lowercase with uppercase
 |(AND|OR|BY|OF)\b|\B. # Regex match, it doesn't matter if we match 'AND' in SHAND
                       #   since the 'SH' will still become 'S' or am I missing something?
                       # Replace with nothing

আমি রেটিনার সাথে অপরিচিত। কি করে T`l`L?
সাইয়েস

@ কিয়েস ব্যাখ্যা সহ আপডেট দেখুন
andlrc

6

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

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

s=>s.toUpperCase().replace(/\B.| |(AND|O[RF]|BY)\b/g,"")

ব্যাখ্যা

কোডটি স্ব-বর্ণনামূলক, আমি কেবল রেজেক্স ব্যাখ্যা করব:

\B.          // Matches any character (`.`), that's not the start of a word
|            // Matches spaces
|(...)\b     // Matches all the words that should be ignored

এটি এই সমস্ত মিলিত চ্যাসার্স এবং বড় হাতের শব্দটি সরিয়ে ফেলে


1
রেজিএক্সপ্যাকের আগে .tuperCase () স্থাপন করা আপনি iপতাকাটি এড়াতে পারতেন
edc65

@ Edc65 স্মার্ট ধারণা, ধন্যবাদ!
ডাউনগোট

খুব নিশ্চিত যে এখানে পেরেনগুলির দরকার নেই
শন এইচ

5

জাভাস্ক্রিপ্ট, 61 64 66 63 বাইট

a=>a.toUpperCase().replace(/(AND|O[FR]|BY|(\w)\w+)( |$)/g,"$2")

তালিকা থেকে নেই এমন শব্দগুলি খুঁজে পেতে এটি একটি নিয়মিত এক্সপ্রেশন ব্যবহার করে: and, or, of, byএবং প্রথম অক্ষরটি ক্যাপচার করে। এটি অক্ষরের ফলাফলের স্ট্রিংকে মূলধন করে।

সম্পাদনা: By৪ বাইট - শব্দের জন্য স্থির withof,or,by,and

সম্পাদনা: By 66 বাইট - শেষ শব্দ সহ সমস্ত শব্দ পরীক্ষা করার জন্য স্থির।

সম্পাদনা করুন: 63 বাইট - সংরক্ষিত 3 বাইট ধন্যবাদ @ edc65 এবং @Cyoce !


জন্য কাজ করে নাFoo Offline Bar
Downgoat

সাধারণ sensক্যমত্য হ'ল আপনাকে কোনও ভেরিয়েবলের জন্য ফাংশনটি নির্ধারণ করার দরকার নেই।
সায়োস

রেজিএক্সপ্যাকের আগে .tuperCase () স্থাপন করা আপনি iপতাকাটি এড়াতে পারতেন
edc65

5

vim, 46

gUU:s/ /\r/g<cr>:g/\vAND|OR|OF|BY/d<cr>:%s/.\zs.*\n<cr>
gUU                      make line uppercase
:s/ /\r/g<cr>            replace all spaces with newlines
:g/\vAND|OR|OF|BY/d<cr>  remove unwanted words
:%s/.\zs.*\n<cr>         remove all non-initial characters and newlines

আমি বিশেষত শেষ বিট পছন্দ। প্রথম .Regex লাইন প্রথম অক্ষরটি সাথে মেলে। তারপরে আমরা \zs" অক্ষরটি পরিবর্তিত" অংশটি শুরু করতে ব্যবহার করি , কার্যকরভাবে প্রাথমিক অক্ষরটি প্রতিস্থাপন না করে। .*বাকী রেখার সাথে \nমেলে এবং শেষের লাইনের সাথে মেলে matches যেহেতু আমরা কোনও প্রতিস্থাপনের স্ট্রিং নির্দিষ্ট করে দিই না, ভিম কেবলমাত্র আদ্যক্ষর ফেলে রেখে ম্যাচের সমস্ত কিছু সরিয়ে দেয়।


vimএকটি প্রোগ্রামিং ল্যাঙ্গুয়েজ
চাচাতো ভাই কোকেন

4

সিজেম, 28 24 22 বাইট

qeuS/"AOBONRYFD"4/z-:c

এটি অনলাইনে চেষ্টা করুন । কোনও ত্রুটি নির্দেশ করার জন্য এবং একটি সমাধানের পরামর্শ দেওয়ার জন্য Sp3000 এবং ডেনিসকে 4% (!) বাইট সঞ্চয় করার জন্য ধন্যবাদ ।

ব্যাখ্যা

qeuS/  e# Convert the input to uppercase and split on spaces
"AOBONRYFD"4/z  e# Push the array of short words. See more below
-      e# Remove each short word from the input words
:c     e# Cast the remaining words to characters, which is a
       e# shorter way of taking the first letter

ডেনিস শব্দের তালিকা সংক্ষিপ্ত করার জন্য এই কৌশলটির পরামর্শ দিয়েছিল: AOBONRYFDচার ভাগে বিভক্ত হয়ে আমরা পেয়েছি

AOBO
NRYF
D

zঅপারেটরের সাথে কলামগুলিকে সারিগুলিতে স্থানান্তর করা , আমরা সঠিক শব্দগুলি পাই!


4

জুলিয়া, 72 63 61 55 বাইট

s->join(matchall(r"\b(?!AND|OR|OF|BY)\S",uppercase(s)))

এটি একটি অনামী ফাংশন যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে। এটি কল করতে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করুন।

আমরা স্ট্রিংটিকে রূপান্তর করি uppercase, নিয়মিত প্রকাশের প্রতিটি মিলকে \b(?!AND|OR|OF|BY)\Sঅ্যারে হিসাবে নির্বাচন joinকরি এবং এটি স্ট্রিংয়ে রূপান্তর করি।

ডেনিসের জন্য 8 টি বাইট সংরক্ষণ করা!



3

রুবি, 45 43 বাইট

->s{s.upcase.scan(/\b(?!AND|OR|OF|BY)\S/)*''}

এটি একটি ল্যাম্বদা ফাংশন যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে। এটি কল করতে, এটিকে একটি ভেরিয়েবলের জন্য বরাদ্দ করুন এবং করুন f.call(input)

এটি আমার জুলিয়া উত্তরের মতো একই পদ্ধতির ব্যবহার করে , যাকে বড়হাতে রূপান্তরিত করা হয়, নিয়মিত অভিব্যক্তির মিল পান \b(?!AND|OR|OF|BY)\Sএবং স্ট্রিংয়ে যোগ দিন।

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

ম্যানটওয়ার্কের জন্য 2 টি বাইট সংরক্ষণ করা হয়েছে!


3
.join*''। যাইহোক, এটি কল করার জন্য এটি কোনও কিছুতে নির্ধারিত করার দরকার নেই। এটি কেবল সাবস্ক্রিপ্ট হিসাবে আর্গুমেন্টগুলি পাস করুন:->s{s.upcase.scan(/\b(?!AND|OR|OF|BY)\S/)*''}['United States of America']
ম্যান্যাটওয়ার্ক

ওমান সুন্দর কাজ, ধন্যবাদ!
অ্যালেক্স এ

3

পিএইচপি, 92 বাইট

কোড গল্ফ এ প্রথম প্রচেষ্টা।

foreach(explode(" ",str_replace(["AND","OR","BY","OF"],"",strtoupper($s)))as$x){echo$x[0];}

পরিবর্তনশীল $sফ্রেজ রূপান্তরিত করার জন্য হল: $s = "United States of America"

সংক্ষিপ্ত অ্যারে সিনট্যাক্সটি কাজ করার জন্য পিএইচপি 5.4 বা তার বেশি প্রয়োজন।


অন্যথায় উল্লেখ না করা হলে কেবল এফওয়াইআই, কোড-গল্ফ গুলি স্কোর করা হয় bytesএবং আপনি #একটি শিরোনাম তৈরি করতে লাইনটির শুরুতে কেবল একটি ব্যবহার করতে পারেন ।
বিড়াল

2
একটি সমস্যা আছে। ব্যবহারের $sপ্রয়োজন হয় register_globals, তবে এটি পিএইচপি থেকে 5.4 সাল থেকে সরানো হয়েছে, সুতরাং আপনার সংক্ষিপ্ত অ্যারে সিনট্যাক্সের জন্য 5.4 প্রয়োজন হওয়ায় আপনার উত্তর কাজ করতে পারে না। আপনাকে একটি আর্গুমেন্ট ( $argv, একটি ফাংশন আর্গুমেন্ট বা অনুরূপ) হিসাবে ইনপুট স্ট্রিংটি পেতে হবে ।
14

3

বাশ + জিএনইউ কোর্টিলস, 103 76 বাইট

for i in ${@^^};do grep -qE '\b(AND|OR|BY|OF)\b'<<<$i||echo -n ${i:0:1};done

সাথে চালাও

./codegolf.sh Light Amplification BY Stimulation of Emitted Radiationofo

হয় একক যুক্তির সাথে বা একাধিক যুক্তি সহ।

(আমি শেষ কথা বিকৃত ধারণ এর )।


60 বাইট

@ মানাত ওয়ার্ককে ধন্যবাদ।

for i in ${@^^};{ [[ $i = @(AND|OR|BY|OF) ]]||printf %c $i;}

দুঃখিত, কিন্তু সেই awkকলটি ভয়ঙ্কর দেখাচ্ছে। এর বদলে কী হবে ${@^^}?
manatwork

@ মান্যাট ওয়ার্ক, ভালো কথা, এটি ভাবেন নি ...
রেক্সকোটিটানস

দেখতে অনেক বেশি ভাল লাগছে। এখন দয়া করে grepকলটি প্রতিস্থাপন করুন [[ $i = @(AND|OR|BY|OF) ]]। ;) এবং এর সাথে আপনি পোস্টের শিরোনাম থেকে "+ GNU কোর্টিলস" অংশটিও সরাতে পারেন।
manatwork

আরও একটি জিনিস: আপনি এর echoসাথে প্রতিস্থাপন করতে পারেন printf। উপরন্তু আপনি আবেদন করতে পারেন ডিজিটাল ট্রমা এর বক্রবন্ধনী ডগা খুব। ( বাশে গল্ফ করার আরও টিপস in )for i in ${@^^};{ [[ $i = @(AND|OR|BY|OF) ]]||printf %c $i;}
মানবকর্ম

আমি গ্রেপ -এর অনুরূপ বাশ \bসংকেতটির সন্ধান করছিলাম কিন্তু এটি খুঁজে পেলাম না ... এবং আমি জানতাম না যে do...doneকোঁকড়া ধনুর্বন্ধনী দ্বারা প্রতিস্থাপন করা যেতে পারে।
রেক্সকোটিটানস

3

জাভাস্ক্রিপ্ট, 104 85 বাইট

@ অ্যাপলেট 123 এর জন্য 19 বাইট সংরক্ষণ করা হয়েছে

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

a=_=>_.split` `.map(v=>/\b(o(f|r)|and|by)\b/i.test(v)?"":v[0]).join("").toUpperCase()

Ungolfed:

function a(_) {
       _ = _.split` `; //Split on spaces
       _ = _.map(function(v){return new RegExp("\b(o(f|r)|and|by)\b","i").test(v)}); //Check if the banned words are in the result
       _ = _.join(""); //Join it into a string
       _ = _.toUpperCase(); //Convert it to uppercase
};

কেন এখানে একটি ব্যাকটিক আছে? এটি একটি ত্রুটি ঘটায় এবং সেখানে থাকার উদ্দেশ্য নয়। আপনার সম্ভবত ব্যাকটিকটি সরিয়ে নেওয়া উচিত।
অ্যাপলেট 123

এছাড়াও, আপনার দরকার নেই var। আমরা কোড গল্ফে বিশ্বব্যাপী সুযোগকে দূষিত করার বিষয়ে চিন্তা করব না: পি
নিনজাবার্মনকি

এটা কাজ করে না. উদাহরণগুলির দিকে নজর দিলে আমেরিকার মার্কিন যুক্তরাষ্ট্রের ইনপুট input এটি আউটপুট দেয় `
মার্কিন`

হ্যাঁ, আমি লক্ষ্য করেছি। বোকা সুপার দীর্ঘ অন্তর্নির্মিত ফাংশন নাম।
clamchowder314

আপনি Z এর _.map(v=>/o(f|r)|and|by/.test(v)?"":v[0]) পরিবর্তে সেট করতে পারেন ""। আপনি আপনার _.forEach(p=>Z+=p[0].toUpperCase());লাইনটি সরাতে পারেন এবং আপনার return Zলাইনটি return Z.join("").toUpperCase()
Aplet123

3

এমএটিএল , 34 27 বাইট

@ অ্যান্ড এন কে 1 টি বাইট কম ধন্যবাদ thanks

KkYb'OF AND OR BY'YbX-c1Z)!

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

Xk                  % convert to uppercase
Yb                  % split by spaces. Gives a cell array of input words
'AND OR BY OF'      % ignored words separated by spaces
Yb                  % split by spaces. Gives a cell array of ignored words
X-                  % setdiff: remove ignored words (result is stable)
c                   % convert to 2D char array, padding words with spaces
1Z)                 % take first column
!                   % transpose into a row

1
সম্ভবত এটি 33 বাইট দিয়ে কাজ করে? XkYb{'OF' 'AND' 'OR' 'BY'}X-c1Z)!
আদনান


2

পাইথন, 81 বাইট

lambda s:''.join(c[0]for c in s.upper().split()if c not in'AND OF OR BY'.split())

2

হাস্কেল, 100 99 98 82 75 বাইট

আমি বেশ নিশ্চিত করুন যে এটি আরো অনেক হিসাবে আমি এখনও ব্যবহারে স্তন্যপান সংক্ষিপ্ত করা যেতে পারে am $, .ইত্যাদি তাই আমি ব্যবহার করা চালিয়ে ()insted =)

আপনার সহায়তার যাদু করার জন্য @ নিমিকে ধন্যবাদ!

import Data.Char
w=words
x=[h!!0|h<-w$toUpper<$>x,notElem h$w"OF BY OR AND"]

উদাহরণ:

*Main> a "united states by america"
"USA"

ওহ, এই .রচনা অপারেটরটি বেশ স্বজ্ঞাত দেখাচ্ছে। কোন ক্রমে কী মূল্যায়ন করা হয় তা আমি কখনই নিশ্চিত নই।
flawr

অধ্যায়ের chapter ষ্ঠ অধ্যায় আপনি মহান কল্যাণের জন্য একটি হাস্কেল শিখুন! এর সাথে ফাংশন অ্যাপ্লিকেশন $এবং সংমিশ্রনের. জন্য একটি ভাল ভূমিকা রয়েছে
নিমি

1
অ pointfree এবং একটি তালিকা ধী স্যুইচ করা ফিরে এমনকি খাটো: a x=[h!!0|h<-w$toUpper<$>x,notElem h$w"OF BY OR AND"]
নিমি

এখন এটি অবশ্যই আমার মাথার উপরে চলে গেছে, আমাকে দ্রুত শিখতে হবে =)
ফ্লাওয়ার

2

পাইথন, 103 96 বাইট

কোড গল্ফে এটি আমার প্রথম প্রচেষ্টা এবং এটি সম্ভবত আরও অনেক গল্ফ করা যেতে পারে। সাতটি অক্ষর সংরক্ষণ করার জন্য ডেনারএফিকে ধন্যবাদ।

lambda x:"".join([x[0]for y in x.split(" ") if y.lower() not in ['and','or','of','by']]).upper()

এটি ইনপুট নেয়, এটিকে শব্দের তালিকায় পরিণত করে এবং তাদের প্রথম অক্ষরটি গ্রহণ করে যদি এটি নিষিদ্ধ শব্দগুলির মধ্যে একটি না হয়, তবে সবকিছুকে বড় হাতের দিকে পরিণত করে।


2
এটা তোলে হয়েছিল ইনপুট চালানো করার চেষ্টা করছে। পাইথন 3 এ এটি হয় না। (আমি এটা (-4 জন্য পাইথন 3 সুইচ 2 বাইট সংরক্ষণ মনে inputবনাম raw_inputজন্য +2 print("".join..)বনাম print"".join..।) এছাড়াও একটি প্রতীক ও একটি শব্দ মধ্যে কোন স্থান
CalculatorFeline

অথবা আপনি কেবল একটি ল্যাম্বদা নিয়ে যান যা আর্গুমেন্ট হিসাবে ইনপুট পায়। যদি চ্যালেঞ্জ এটিকে স্পষ্টভাবে নিষেধ না করে তবে এখানে সর্বদা এটি অনুমোদিত।
ডেনকার

@ ক্যাটস এয়ারফ্লুফি এটি পাইথন 3 এ যেতে সাহায্য করতে পারে তবে আমি পাইথন 2 এর চেয়ে বেশি পছন্দ করি কারণ কেহ যাইহোক বন্ধনী পছন্দ করে?
mriklojn

আপনি কিছু করার আগে আপনি প্রথমে ইনপুটকে বড় হাতের নাগালে () সংরক্ষণ করতে পারেন। আপনার ফিল্টার তালিকাটি তখন ['AND', 'OR', ...] হয়ে যায়, তবে বাকিগুলি একই থাকে। আপনি ধনুর্বন্ধনী পিছনে কিছু সাদা স্থান ফেলে দিতে পারেন। x[0]for ...পাইথনে সম্পূর্ণরূপে বৈধ।
ডেনকার

চিহ্ন এবং কীওয়ার্ডগুলির মধ্যে ফাঁকা স্থান সরিয়ে ফেলুন (এটি কাজ করে)
ক্যালকুলেটরফলাইন

2

জাভাস্ক্রিপ্ট, 80 72 55 53 বাইট

কোড

function a(t){t=t.toUpperCase();t=t.replace(/AND|OR|BY|OF|\B.| |/g,"");return t}

function a(t){return t.toUpperCase().replace(/AND|OR|BY|OF|\B.| |/g,"")}

আমি কেবল তীর ফাংশন সম্পর্কে পড়েছি এবং বুঝতে পেরেছি যে এটিকে আরও আরও ছোট করে তুলতে পারি।

a=t=>t.toUpperCase().replace(/AND|OR|BY|OF|\B.| |/g,"")

এই অনুসারে , আপনি অ্যাসাইনমেন্টটি দৈর্ঘ্যে, তাই -2 বাইট গণনা করেন না।

t=>t.toUpperCase().replace(/AND|OR|BY|OF|\B.| |/g,"")

এটি আমার প্রথম গল্ফ, সুতরাং এটি খুব ভাল নয়।


2

পিএইচপি, 68 61 58 বাইট

আইএসও -8859-1 এনকোডিং ব্যবহার করে।

for(;$w=$argv[++$x];)stripos(_AND_OR_BY_OF,$w)||print$w&ß;

এটি চালান ( -dকেবল নান্দনিকতার জন্য যুক্ত):

php -d error_reporting=30709 -r 'for(;$w=$argv[++$x];)stripos(_AND_OR_BY_OF,$w)||print$w&ß; echo"\n";' united states oF america

Ungolfed:

// Iterate over the CLI arguments (words).
for(;$w = $argv[++$x];)
    // Check if the word is one of the excluded words by substring index.
    // The check is case insensitive.
    stripos("_AND_OR_BY_OF", $w) ||
        // Print the word, converting to uppercase and getting only the
        // first char by using bitwise AND.
        print $w & "ß";
  • বিটওয়াইস এবং পরিবর্তে ব্যবহারের পরিবর্তে 7 বাইট সংরক্ষণ করা ucwords
  • আইএসও -8859-1 এনকোডিং ব্যবহার করে এবং বাইনারি (নেতিবাচক স্থান ) এর পরিবর্তে বাইনারি ß(বাইনারি 11011111) ব্যবহার করে 3 বাইট সংরক্ষণ করা হয়েছে ।AND00100000

1

গণিত, 132 117 বাইট

ToUpperCase[First/@Characters@DeleteCases[StringDelete[StringSplit@#,"of"|"and"|"or"|"by",IgnoreCase->True],""]<>""]&

15 বাইটস সংরক্ষণ করেছেন @ ক্যাটসআরএফ্লুফিকে ধন্যবাদ thanks


StringSplitহোয়াইটস্পেসে বিভক্তকরণের জন্য 1 আর্গ ডিফল্ট (-5bytes)
ক্যালকুলেটরফ্লাইন

1
এছাড়াও আপনি শব্দ তালিকার সাথে প্রতিস্থাপন করতে পারেন "of"|"and"|"or"|"by"। এছাড়াও {"a","b","c"}<>""==StringJoin[{"a","b","c"}]। একটি শেষ জিনিস: Charactersতালিকাগুলিতে স্বয়ংক্রিয়ভাবে মানচিত্র।
ক্যালকুলেটরলাইন

1
লিডারবোর্ডটি পছন্দ করবে আপনি গণিতের পরে কমা রাখবেন। এছাড়াও আপনি স্বাগত :) :)
ক্যালকুলেটরফ্লাইন

1

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

(-join($args[0].Split(" ")|?{$_-notmatch"^(and|or|by|of)$"}|%{$_[0]})).ToUpper()

ব্যাখ্যা

একটি অ্যারে তৈরি করে স্পেসগুলিতে বিভক্ত করুন। আপত্তিজনক সদস্যদের ফেলে দিন। প্রথম চরিত্রটি টানুন এবং একসাথে যোগদান করুন। ToUpper()ফলাফলযুক্ত স্ট্রিং ব্যবহার করুন।


বুঝতে পেরেছিল যে অ্যান্ডারসনের সাথে মেলে এবং এটি ফেলে দেবে। 4 বাইট যুক্ত করা হয়েছে
ম্যাট

1

লুয়া, 122 বাইট

নিষিদ্ধ শব্দগুলি থেকে মুক্তি পেতে আমার একটি নমুনা ব্যবহার করতে ভাল লাগবে, তবে দুঃখের বিষয় লুয়া চরিত্রের গ্রুপগুলির সাথে মেলে না ... তাই এর পরিবর্তে আমাকে লুপের জন্য ব্যবহার করতে হয়েছিল, যা অনেক বেশি ব্যয়বহুল।

s=arg[1]for k,v in next,{"of","and","by","or"}do
s=s:gsub(v,"")end
print(s:gsub("(%a)%a+",string.upper):gsub("%s","").."")

Ungolfed

s=arg[1]                               -- initialise s with the argument
for k,v in next,{"of","and","by","or"} -- iterate over the array of banned words
do
    s=s:gsub(v,"")                     -- replace the occurences of v by 
end                                    --   an empty string
print(s:gsub("(%a)%a+",                -- replace words (separated by spaces)
              string.upper)            -- by their first letter capitalised
         :gsub("%s","")                -- replace spaces with empty strings
                       .."")           -- concatenate to prevent the number of 
                                       -- substitutions to be shown


1

ফ্যাক্টর, 175 বাইট

আমি এই লিখে অনেক কিছু শিখেছি।

USING: strings ascii sets splitting kernel sequences math.ranges ;
>lower " " split [ { "and" "or" "by" "of" } in? not ] filter [ first dup [a,b] >string ] map "" join >upper 

একটি শব্দ হিসাবে:

USING: strings ascii sets splitting kernel sequences math.ranges ;

: >initialism ( str -- str )
  >lower " " split                            ! string.lower.split(" ")
  [ { "and" "or" "by" "of" } in? not ] filter ! word in { } ?
  [ first dup [a,b] >string ]          map    ! word[0]
  "" join >upper ;                            ! "".join.upper

ইউনিট পরীক্ষা:

USING: tools.test mk-initialism ;
IN: mk-initialism.tests

{ "LASER" } [ "Light Amplification by Stimulation of Emitted Radiation" >initialism ] unit-test
{ "USA"   } [ "United States OF Americaof" >initialism ]                              unit-test
{ "USA"   } [ "united states and america" >initialism ]                               unit-test
{ "JTW"   } [ "Jordan Of the World" >initialism ]                                     unit-test

পাস!


1

লুয়া, 113 112 93 বাইট

arg[1]:upper():gsub("%w+",function(w)io.write(("AND OR BY OF"):find(w)and""or w:sub(0,1))end)

বাহ, অস্তিত্বকে পুরোপুরি ভুলে গেছি %w! এটা দুর্দান্ত!
কাটেনকিও

কাটেনকিয়ো: আচ্ছা, এটিও কাজ করবে %a; %aঅক্ষর মেলে, এবং %wঅক্ষর এবং সংখ্যার সাথে মেলে। প্রধান জিনিসটি একটি কাস্টম ফাংশন ব্যবহার করা gsub
ট্রেবুচেট

হ্যাঁ, আমি দেখতে পেয়েছি যে AND OR BY OFশব্দগুলি নির্বাচন করার সময় মুছে ফেলা সহজ ... আমি কোনও কাস্টম ফাংশন ব্যবহার করিনি কারণ gsub("(%a)%a+",string.upper)
এগুলির জন্য

1

সি #, 134 বাইট

Golfed

class P{static void Main(string[] a){foreach (var s in a){if(!"AND OR BY OF".Contains(s.ToUpper())){Console.Write(s.ToUpper()[0]);}}}}

সুপাঠ্য

class P
{
    static void Main(string[] a)
    {
        foreach (var s in a)
        {
            if (!"AND OR BY OF".Contains(s.ToUpper()))
            {
                Console.Write(s.ToUpper()[0]);
            }
        }
    }
}

কমান্ড লাইন থেকে চালানো

75448.exe নির্গত বিকিরণের উদ্দীপনা দ্বারা হালকা প্রশস্তকরণ

লেজারের

75448.exe আমেরিকা যুক্তরাষ্ট্রের মার্কিন যুক্তরাষ্ট্র

আমেরিকা


0

আইপিএস - প্রতিযোগিতামূলক, 27 বাইট

uS`"AND|OR|BY|OF"ER`%S!h%S-

এটি দোভাষীর বর্তমান সংস্করণে (v0.2) কাজ করে

উদাহরণ রান

পাইথন আইপিওএস.পি-আই "আমেরিকা যুক্তরাষ্ট্রের" ইউএস` \ "এবং | বা | বাই Y" এরআর% এস! এইচ% এস-
আমেরিকা

সেখানকার ব্যাকস্ল্যাশগুলি কেবলমাত্র উদ্ধৃতিগুলি পালানোর জন্য রয়েছে এবং প্রোগ্রামটির জন্য প্রয়োজন নেই।

ব্যাখ্যা

u # ইনপুট বড় হাতের তৈরি করুন
এস # স্ট্যাকের জন্য একটি স্থান পুশ করুন
AND "এবং | OR | BY | OF" ER` # স্ট্যাকের একটি কমান্ড চাপুন, যা রেজেক্সের মিলগুলি প্রতিস্থাপন করে
                   # খালি স্ট্রিং সহ
% # স্পেসে বড় বড় ইনপুট স্ট্রিংকে বিভক্ত করুন, কমান্ডটি প্রয়োগ করুন এবং
                   # স্পেসে ফিরে যোগ দিন। এটি ইনপুট থেকে প্রয়োজনীয় শব্দগুলি সরিয়ে দেয়।
এস # স্ট্যাকের জন্য একটি স্থান পুশ করুন
! h # একটি কমান্ড চাপুন যা কেবল একটি স্ট্রিংয়ের প্রথম অক্ষর নির্বাচন করে
% # স্পেসে বিভক্ত করুন, কমান্ডটি প্রয়োগ করুন এবং স্পেসে ফিরে যোগদান করুন
এস- # অবশিষ্ট স্থানগুলি সরিয়ে ফেলুন (এটি ব্যবহারের জন্য কার্যকর করতে ভুলে গেছেন)
                   রেজেক্সিস সহ #, আমাকে এখানে কিছু বাইট বাঁচাতে পারত :()

0

বাশ / জিএনইউ কোর্টিলস, 60 বাইট

sed -e's/\b'{and,o[rf],by}'\W*//Ig' -re's/(\w)\S* ?/\u\1/g'


0

পাইলংলফ 2 , 14 বাইট (ইউটিএফ -8)

c| l1╨3♀~

পাইলংলফ 2-তে অনেকগুলি নন-এসএসআইআই অক্ষর রয়েছে যা 2 বাইট হিসাবে গণনা করে।

c| l1╨3♀~
c         read input
 |        split by space (note the space after |)
   l1     substring(0, 1)
     ╨3   convert to uppercase
       ♀~ pop the array into the stack and print it.

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