স্পেন লাইসেন্স প্লেট গেম


26

এই প্রশ্নের উপর ভিত্তি করে তৈরি একটি প্রশ্ন আমি জিজ্ঞাসা করলাম মধ্যে স্প্যানিশ ভাষা । হ্যাঁ, আমি স্প্যানিশ ভাষায় একটি অ্যালগরিদম চেয়েছিলাম। :)

স্পেনে, বর্তমান লাইসেন্স প্লেটগুলির এই ধরণটি রয়েছে:

1234 এক্সওয়াইজেড

যেখানে এক্সওয়াইজেড হ'ল তিনটি ব্যঞ্জনবর্ণ যা স্প্যানিশ ব্যঞ্জনবর্ণের পুরো সেট থেকে নেওয়া ('Ñ' বাদে, আমার মনে হয়)।

কখনও কখনও, আমার স্ত্রীর সাথে ভ্রমণের সময়, আমরা একটি খেলা খেলি। আমরা যখন কোনও লাইসেন্স প্লেট দেখি, আমরা এর তিনটি ব্যঞ্জনবর্ণ গ্রহণ করি এবং সেই শব্দটি তৈরি করার চেষ্টা করি যা লাইসেন্স প্লেটের মতো একই ক্রমে উপস্থিত হয়, সেই তিনটি ব্যঞ্জনবর্ণ ধারণ করে। উদাহরণ (স্প্যানিশ ভাষায়):

BCD
    BoCaDo (valid)
    CaBezaDa (not valid)
FTL
    FaTaL (valid)
    FLeTar (not valid)
FTR
    FleTaR (valid, wins)
    caFeTeRa (valid, loses)

বিজয়ী হলেন তিনি সর্বনিম্ন সংখ্যক অক্ষর ব্যবহার করেন, যেমন আপনি শেষ উদাহরণে দেখতে পারেন।

চ্যালেঞ্জ

সংক্ষিপ্ততম প্রোগ্রাম বা ফাংশনটি লিখুন যা শব্দের একটি তালিকা এবং তিনটি ব্যঞ্জনের একটি সেট পেয়ে থাকে এবং সেই তালিকায় সংক্ষিপ্ততম শব্দটি খুঁজে পায় যাতে একই ক্রমে তিনটি ব্যঞ্জনবর্ণ রয়েছে। এই গেমের উদ্দেশ্যগুলির জন্য, কেস কোনও বিষয় নয়।

  • শব্দ তালিকার ইনপুট (প্রথম প্যারামিটার) আপনার ভাষা stringধরণের একটি অ্যারে হবে । দ্বিতীয় প্যারামিটার (তিনটি ব্যঞ্জনবর্ণ) অন্যটি হবে string। যদি এটি আপনার ভাষার পক্ষে আরও ভাল stringহয় তবে তিনটি ব্যঞ্জনবর্ণের সাথে পরামিতিগুলির সম্পূর্ণ তালিকার শেষ আইটেমটি বিবেচনা করুন । আউটপুট অন্য হবে string
  • শব্দ তালিকার শব্দগুলি উদ্ভাবিত বা অসীম শব্দের নয়, এগুলি কোনও মানক অভিধানে উপস্থিত হওয়া শব্দগুলি হবে। আপনার যদি কোনও সীমা দরকার হয়, ধরুন শব্দ তালিকার কোনও শব্দই 50 টি অক্ষরের বেশি হবে না।
  • যদি একই দৈর্ঘ্যের সাথে বেশ কয়েকটি শব্দ থাকে যা বৈধ উত্তর হতে পারে তবে আপনি সেগুলির কোনও একটিই দিতে পারেন। কেবলমাত্র একটি শব্দ বা তিনটি ব্যঞ্জনবর্ণের প্যাটার্নের সাথে কোনও শব্দ মিলে না থাকলে খালি স্ট্রিংটি নিশ্চিত করুন sure
  • আপনি গোষ্ঠীতে ব্যঞ্জনবর্ণ পুনরাবৃত্তি করতে পারেন, সুতরাং তিনটি ব্যঞ্জনবর্ণের বৈধ ইনপুট উভয়ই FLRএবং GGG
  • স্প্যানিশ ব্যঞ্জনবর্ণ হুবহু ইংরেজির মতো, "Ñ" সংযোজন সহ। চাপযুক্ত স্বরগুলির অ্যাডিশনের সাথে স্বরগুলি একই হয়: "áéíóúü"। "-" বা "" "এর মতো অন্য কোনও চিহ্ন থাকবে না won't
  • আপনি ধরে নিতে পারেন কেসটি শব্দ তালিকার এবং তিনটি ব্যঞ্জনবর্ণ উভয় ক্ষেত্রে সর্বদা একই থাকবে।

আপনি যদি স্প্যানিশ শব্দের একটি সত্য সংগ্রহের সাথে আপনার অ্যালগরিদমটি পরীক্ষা করতে চান তবে আপনি লক্ষ লক্ষেরও বেশি শব্দের সাথে ড্রপবক্স থেকে একটি ফাইল (15.9 এমবি) ডাউনলোড করতে পারেন ।

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

Input: 'psr', {'hola' 'repasar' 'pasarais' 'de' 'caída' 'pequeñísimo' 'agüeros'}
Output: 'repasar'

Input: 'dsd', {'dedos' 'deseado' 'desde' 'sedado'}
Output: 'desde'

Input: 'hst', {'hastío' 'chest'}
Output: 'chest'

এটি , তাই সবচেয়ে সংক্ষিপ্ততম প্রোগ্রাম যা আমাকে সর্বদা আমার স্ত্রীকে জিততে সহায়তা করে! :)


শব্দ তালিকার শব্দগুলি কতক্ষণ গ্যারান্টিযুক্ত?
নিল

2
প্রকৃত লাইসেন্স প্লেটে, চিঠি Q এরও অনুমতি নেই; এবং ডব্লু , যদিও সঠিক স্প্যানিশ চিঠিটি নেই
লুইস মেন্ডো

2
আমরা কি তালিকার শব্দগুলি ধরে নিতে পারি এবং তিনটি অক্ষর সবই একটি ক্ষেত্রে থাকবে?
জোনাথন অ্যালান

1
@ লুইস মেন্ডো ডাব্লু 1969 সাল থেকে একটি স্প্যানিশ চিঠি হয়ে আছে
ওয়ালেন

1
@ ওয়ালেন সে কারণেই আমি বলেছি "যথাযথ" :-) এটি স্প্যানিশ ভাষায় বিদ্যমান, তবে এটি বিদেশী বোধ করে
লুইস মেন্ডো

উত্তর:


7

05 এ বি 1 ই , 10 8 বাইট

লিওকে ধন্যবাদ 2 বাইট সংরক্ষিত

ʒæså}éR`

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

ব্যাখ্যা

ʒ         # filter list, keep only members for which the following is true
  så      # input is in the
 æ        # powerset of the current word
    }     # end filter
     é    # sort by length
      R   # reverse
       `  # push separately (shortest on top)

আমি headশেষে একটি বাইট সংরক্ষণ করে ব্যবহার করতাম তবে এটি মিল না থাকলে একটি খালি তালিকা আউটপুট দেয়।


3
3ù #keep only those of length 3তোমার এটার দরকার কেন?
লিও

1
@ লিও: আমি তা করি না, তা আমার নির্বোধ ছিল। ধন্যবাদ :)
এমিগিনা

6

এমএটিএল , 30 29 বাইট

xtog!s2$S"1G!'.*'Yc!@gwXXn?@.

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

ব্যাখ্যা

x         % Implicitly take first input (string with three letters). Delete.
          % Gets copied into clipboard G, level 1
t         % Implicitly take second input (cell array of strings defining the
          % words). Duplicate
o         % Convert to numeric array of code points. This gives a matrix where
          % each string is on a row, right-padded with zeros
g         % Convert to logical: nonzeros become 1
!s        % Sum of each row. This gives the length of each word
2$S       % Two-input sort: this sorts the array of strings according to their
          % lengths in increasing order
"         % For each word in the sorted array
  1G      %   Push first input, say 'xyz'
  !       %   Transpose into a column vector of chars
  '.*'Yc  %   Concatenate this string on each row
  !       %   Transpose. This gives a char array which, when linearized in
          %   column-major order, corresponds to 'x.*y.*z.*'
  @g      %   Push corrent word
  w       %   Swap
  XX      %   Regexp matching. Gives a cell array with substrings that match
          %   the pattern 'x.*y.*z.*'
  n       %   Number of matchings
  ?       %   If non-zero
    @     %     Push cell array with current word, to be displayed as output
    .     %     Break loop
          %   Implicit end (if)
          % Implicit end (for)
          % Implicitly display stack

6

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

$y=array_map(str_split,preg_grep("#".chunk_split($_GET[1],1,".*")."#",$_GET[0]));sort($y);echo join($y[0]??[]);

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


2
নম্বর প্লেট একটি স্ট্রিং হওয়া উচিত, অ্যারে নয়। তবে আপনার পরিবর্তকের দরকার নেই।
তিতাস

@ টিটাস ফিক্সড !!
জার্গ হালসারম্যান

You can suppose the case will always be the same in both the word list and the three consonants.- রেজেক্স মোডিফায়ারের প্রয়োজন নেই। আপনি কি wordwrapপরিবর্তে চেষ্টা করেছেন join(str_split())?
তিতাস

@ টিটাস ভাল ধারণা
জার্গ হালসারম্যান

5

জেলি ,  12 11  10 বাইট

ŒPċðÐfLÞḣ1

একটি সম্পূর্ণ প্রোগ্রাম যা ছোট হাতের অক্ষরের তালিকার একটি তালিকা (শব্দ) এবং ছোট হাতের অক্ষরগুলির একটি তালিকা (অক্ষরগুলি) গ্রহণ করে এবং সংক্ষিপ্ততম শব্দের প্রথমটি মুদ্রণ করে যা অক্ষরের সমান একটি উপ-অনুক্রম থাকে (বা কিছুই না থাকলে কিছুই না) )।

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

কিভাবে?

ŒPċðÐfLÞḣ1 - Main link: words; characters
   ðÐf     - filter keep words for which this is truthy:
ŒP         -   the power-set (all sub-sequences of the word in question)
  ċ        -   count (how many times the list of characters appears)
           - ...note 0 is falsey while 1, 2, 3, ... are truthy
       Þ   - sort by:
      L    -  length
        ḣ1 - head to index 1 (would use Ḣ but it yields 0 for empty lists)
           - implicit print (smashes together the list of lists (of length 1))

1
আমি যদি আপনার ব্যাখ্যাটি সঠিকভাবে বুঝতে পারি তবে এটি "ব্র্যাক" এর ব্যঞ্জনবিন্যাসের ক্রম হিসাবে "বোররাচো" শব্দটি প্রত্যাখ্যান করবে, কারণ "ব্রিসি" "ব্রিআরসি" এর একটি স্তর নয়
লিও

@ লিও আহ, হ্যাঁ ভাল ধরা আমি মনে করি এটি ব্যর্থ হবে ...
জোনাথন অ্যালান

@ লিও - ভাল এটি ঠিক করা হয়েছে (প্রতিটি শব্দের পুরো পাওয়ার-সেটটির জন্য "উপস্থিত রয়েছে") তবে এটি পুরোপুরি গল্ফ করা যায় না ...
জোনাথন অ্যালান

5

পাইথ - 22 21 19 12 11 বাইট

h+f/yTQlDEk

-1 মাল্টেসেনকে ধন্যবাদ।

ইনপুট হিসাবে 2 লাইন নেয়। প্রথমটি হ'ল 3-অক্ষরের স্ট্রিং (ছোট হাতের অক্ষর), এবং ২ য় শব্দের একটি ছোট হাতের তালিকা।

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

ব্যাখ্যা:

h+f/yTQlDEk
       lDE   # Sort word list by length
  f          # Filter elements T of the word list...
    yT       # by taking the powerset...
   /  Q      # and checking whether the 3-letter string Q is an element of that.
 +        k  # Add empty string to the list (in case no results found)
h            # And take the first result (the shortest)

পুরাতন 19 বাইট সমাধান:

h+olNf/-T"aeiou"QEk                       

@ জোনাথন অ্যালান: স্থির! যে ইশারা জন্য ধন্যবাদ।
মারিয়া

1
@ জোনাথন অ্যালান: দেখে মনে হচ্ছে যে তিনি প্রশ্নটি সম্পাদনা করে স্পষ্ট করে দিয়েছিলেন যে এই ক্ষেত্রে এটি খালি স্ট্রিংটি ফিরিয়ে আনবে। আমি আমার উত্তরটি সেই অনুযায়ী সম্পাদনা করেছি।
মারিয়া

1
আমাদের ডি-তে একটি ধরণের মেটা অপারেটর রয়েছে, সুতরাং আপনি এলডি দ্বারা ওএলএন প্রতিস্থাপন করতে পারেন
মালটিসেন

5

ব্র্যাচল্যাগ ভি 2, 11 বাইট

tlᵒ∋.&h⊆.∨Ẹ

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

ফাংশন জমা। (টিআইও লিঙ্কটিতে কোনও ক্রিয়াকলাপ চালানোর জন্য একটি কমান্ড-লাইন আর্গুমেন্ট রয়েছে যেমন এটি একটি সম্পূর্ণ প্রোগ্রাম))

ব্যাখ্যা

স্পেসিফিকেশনটির কেবল একটি সরাসরি অনুবাদ আবার ...

tlᵒ∋.&h⊆.∨Ẹ
t            The last element of {standard input}
   ∋.        contains the return value as an element
     &       and
      h      the first element of {standard input}
       ⊆.    is a subsequence of the return value
         ∨   alternate behaviour if no solution is found:
          Ẹ  return empty string
  ᵒ          tiebreak override: favour answers that have a low
 l           length

আপনি প্রায় উত্তর দিয়ে দিতে পারেন h⊆.&t∋- মূল্যায়ন আদেশের অদলবদল করার অর্থ ব্র্যাকল্যাগ ডিফল্ট দ্বারা সংক্ষিপ্ত উত্তরটি বেছে নেবে (এটি প্রথম সীমাবদ্ধতা হিসাবে দেখায় এটি ডিফল্ট টাইব্রেক হিসাবে "সুবিধাজনক" সংক্ষিপ্ততম "রয়েছে) - তবে সেই ক্ষেত্রে ব্র্যাচল্যাগের মূল্যায়ন অ্যালগরিদম দুর্ভাগ্যক্রমে উত্তরটি যদি সন্ধান না পাওয়া যায় তবে একটি অসীম লুপে যাবে। সুতরাং প্রায় অর্ধেক উত্তর যথাযথ উত্তর না পাওয়ায় কেস পরিচালনা করতে উত্সর্গীকৃত। তারপরেও lᵒটাইব্রেক ব্রেক ওভাররাইড (যা প্রযুক্তিগতভাবে সাজানো, এটির ব্যবহার করেতালিকার শুরুতে কাছাকাছি থাকা পছন্দের উপাদানগুলির ডিফল্ট টাইব্রেক) কেবল দুটি বাইট; অন্য তিনটি খালি স্ট্রিং আউটপুট দেওয়ার প্রয়োজন থেকে বিশেষত যখন আউটপুটটি পাওয়া যায় না, ব্র্যাচল্যাগের ডিফল্ট "কোনও সমাধান" সন্টিনেল মানের বিপরীতে (কারণ চূড়ান্ত অন্তর্ভুক্ত .হবে যদি আমাদের এটি অনুসরণ না করানো হত )।

মজার বিষয় হল, ব্র্যাকল্যাজে আগে এমন একটি বৈশিষ্ট্য প্রয়োগ করা হয়েছিল যা এখানে একটি বাইট সংরক্ষণ করতে পারত। এক পর্যায়ে আপনি ব্যবহার ইনপুট যুক্তি থেকে উপাদানগুলি নিষ্কর্ষ পারে ?₁, ?₂ইত্যাদি সিনট্যাক্স; এটি আপনাকে প্রোগ্রামটি পুনরায় সাজানোর অনুমতি দেয় tlᵒ∋.⊇?₁∨Ẹ, যা কেবলমাত্র 10 বাইট। দুর্ভাগ্যক্রমে, যে বাস্তবায়ন ব্যবহৃত হয়েছিল তা বাস্তবে কাজ করে নি (এবং অনেকগুলি কার্যকারী প্রোগ্রাম ভাঙ্গার কারণ ঘটায়), তাই এটি আবার পরিণত হয়েছিল। যদিও আপনি প্রোগ্রামটি "ধারণাগতভাবে" 10 বাইট দীর্ঘ বলে মনে করতে পারেন।


4

Haskell, 129 125 74 বাইট

import Data.List
l#w=sortOn length[p|p<-w,isInfixOf l$filter(`elem`l)p]!!0

@ নিমিকে ক্রেডিট করুন


1
আপনি ডানদিকের mapএবং filterএকটি তালিকা বোঝার সাথে প্রতিস্থাপন করতে পারেন । আপনার ইতিমধ্যে Data.Listসুযোগ রয়েছে তাই, আপনি sortOn lengthন্যূনতম দৈর্ঘ্যের সাহায্যে উপাদানটি খুঁজতে এবং মাথাটি বেছে নিতে পারেন । অবশেষে, yএকটি ইনফিক্স ফাংশন করুন। এই সমস্ত তোলে fএবং kঅতিরিক্ত: l#w=sortOn length[p|p<-w,isInfixOf l$filter(`elem`l)p]!!0
নিমি

তুমি ঠিক বলছো! আমি সবেমাত্র গল্ফ শুরু করেছি! ধন্যবাদ!
ডেভিড স্পতারো

1
আরও একটি যদি আপনাকে আমদানি সুইচ Data.Lists, আপনি ব্যবহার করতে পারেন argminপরিবর্তে sortOnএবং সংরক্ষণ করুন !!0: l#w=argmin length[...]Data.Listsহয়েছে অনেক সুন্দর ফাংশন
nimi

3

পার্ল, 53 বাইট

48 বাইট কোড + 5 এর জন্য -paF

$"=".*";($_)=sort{$a=~y///c-length$b}grep/@F/,<>

এই সত্যটি সুবিধা নেয় যে মধ্যে ইন্টারপোলেট তালিকা m//অপারেটর ব্যবহার $"পরিবর্তনশীল যা থেকে প্রাথমিক ইনপুট স্ট্রিং পরিবর্তন psrকরতে p.*s.*rযা পরে প্রতিটি অতিরিক্ত শব্দের জন্য মিল দেখা যায় উপর অনুসারে বাছাই করা হয় length

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


যদি আমি আপনার তালিকায় "বিজ্ঞাপনযুক্ত" সন্নিবেশ করি তবে আপনার প্রোগ্রামটি এটি খুঁজে পেতে ব্যর্থ। প্রথম চরিত্রটি সন্ধানের ক্ষেত্রে শব্দের মধ্যে প্রথম হওয়া দরকার না।
চার্লি

@ কার্লোস আলেজো ইনপুটটির জন্য একটি নতুন নতুন লাইনের দরকার আছে, ঠিক আছে তখন: এটি অনলাইনে চেষ্টা করুন! । এটি যদিও আমাকে প্রহরী থেকে ধরে ফেলল, যেমন <<<অপারেটর যুক্ত করেছেন যে কমান্ড লাইনে আমার জন্য এটি!
ডম হেস্টিংস

3

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

তিনটি ব্যঞ্জনবর্ণ cএবং lবাক্য গঠন বাক্য গঠনের শব্দের তালিকা নেয় (c)(l)। উভয় ইনপুট একই ক্ষেত্রে আশা করা যায়।

c=>l=>l.map(w=>x=!w.match([...c].join`.*`)||!x[w.length]&&x?x:w,x='')&&x

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


c=>l=>l.sort((a,b)=>a[b.length]&&1).find(w=>w.match(c.split``.join`.*`))72 এর জন্য, আমি মনে করি
লারসডাব্লু

@ লার্সডাব্লু, ধন্যবাদ! তবে আমি নতুন নিয়মটি মেনে চলার জন্য অন্য পদ্ধতি বেছে নিয়েছি: বা কোনও শব্দ তিনটি ব্যঞ্জনবর্ণের সাথে মেলে না তবে খালি স্ট্রিং
আরনৌল্ড

3

আর, 101 বাইট

প্রথমবার গল্ফিং! আমি নিশ্চিত যে এটি কোনওভাবে ঘনীভূত হতে পারে

সম্ভাব্য ইনপুটগুলির স্ট্রিং এক্স এবং একটি অক্ষর ভেক্টর y নেয়

w=pryr::f((b=y[sapply(gsub(paste('[^',x,']'),'',y),function(l)regexpr(x,l))>0])[which.min(nchar(b))])

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

সম্পাদনা করুন: আমার সংস্করণটি 135, ধন্যবাদ -34 এর জন্য স্ক্রুবল!


1
পিপিসিজিতে আপনাকে স্বাগতম! এটি একটি স্নিপেটের মতো দেখাচ্ছে যেখানে হার্ডকডযুক্ত ভেরিয়েবলগুলিতে ইনপুট রয়েছে। উত্তরগুলি সম্পূর্ণ প্রোগ্রাম বা কলযোগ্য ফাংশন হওয়া দরকার। সম্ভাব্য I / O পদ্ধতিগুলির জন্য আপনি এটি (বা অন্যান্য আর উত্তর) একবার দেখে নিতে পারেন।
মার্টিন এন্ডার

2

রেটিনা , 58 বাইট

O#$^`¶.+
$.&
s`^((.)(.)(.).*¶(?-s:(.*\2.*\3.*\4.*)))?.*
$5

এটি অনলাইন চেষ্টা করুন! তিনটি ব্যঞ্জনবর্ণকে এক লাইনে নিয়ে যায় এবং তারপরে সমস্ত পরবর্তী লাইনে শব্দের তালিকা তৈরি করে। ব্যাখ্যা: Oতালিকা বাছাই করে ¶.+প্রথম লাইন ব্যতীত #সংখ্যাসূচকভাবে $দ্বারা অস্থির $.&দৈর্ঘ্য। তারপরে একটি ম্যাচটি এমন একটি লাইনের জন্য অনুসন্ধান করা হয় যাতে ক্রমে তিনটি ব্যঞ্জনবর্ণ অন্তর্ভুক্ত থাকে। যদি শেষের চেয়ে উপযুক্ততম রেখা উপস্থিত থাকে, তবে সবচেয়ে কম, এরূপ লাইন আউটপুট হয়ে যায়, অন্যথায় আউটপুট খালি থাকে। ?-s:সাময়িকভাবে প্রভাব সক্রিয় বন্ধ s`যাতে শুধুমাত্র এক লাইন মিলেছে করা হয়।


1
এগুলি তিনটি পেটের বোতাম বা তিনটি স্তন কিনা তা আমি সিদ্ধান্ত নিতে পারি না।
চার্লি

@ কার্লোস আলেজো আপনি কি কোনও সুযোগেই এককেন্দ্রিকা গ্যালম্বিটসের কথা ভাবছেন?
নিল

আমি টোটাল রিক্যাল থেকে ভিনগ্রহের কথা ভাবছিলাম, তবে এক্সেন্ট্রিকাও একটি বিকল্প হতে পারে ... :)
চার্লি

2
@ কার্লোস আলেজো স্পষ্টতই মেরি একেন্দ্রিকা গ্যালুমবিতের প্রতি শ্রদ্ধা।
নিল

1

পিপ , 17 বাইট

@:qJ`.*`N_FI#_SKg

কমান্ড-লাইন আর্গুমেন্ট এবং স্টিডিনের ব্যঞ্জনবর্ণ হিসাবে শব্দ তালিকাটি গ্রহণ করে akes এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

                   g is list of cmdline args (implicit)
              SKg  Sort g using this key function:
            #_      Length of each item (puts shortest words first)
          FI       Filter on this function:
  q                 Line of input
   J`.*`            joined on regex .* (turns "psr" into `p.*s.*r`)
        N_          Count regex matches in item (keeps only words that match)
@:                 Get first element of result (using : meta-operator to lower precedence)
                   If the list is empty, this will give nil, which results in empty output

1

জাভা 8, 132 126 বাইট

s->a->{String r="";for(String x:a)r=(x.length()<r.length()|r.isEmpty())&x.matches(r.format(".*%s.*%s.*%s.*",s))?x:r;return r;}

-6 বাইট @ নেভায়ে ধন্যবাদ ।

ব্যাখ্যা:

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

s->a->{              // Method with two String-array parameters and String return-type
  String r="";       //  Result-String, starting empty
  for(String x:a)    //  Loop over the words
    r=(x.length()<r.length()
                     //   If a word is smaller than the current `r`,
      |r.isEmpty())  //   or `r` is still empty
      &x.matches(r.format(".*%s.*%s.*%s.*",s))?
                     //   And if the word is valid
       x             //    Change `r` to the current word
      :              //   Else:
       r;            //    Leave `r` the same
  return r;}         //  Return the result

1
126 বাইট:s->a->{String r="";for(String x:a)r=(x.length()<r.length()|r.isEmpty())&x.matches(r.format(".*%s.*%s.*%s.*",s))?x:r;return r;}
নেভায়ে


0

এমএটিএল , 28 27 26 বাইট

x"l1G@g3XNXm/@gn*v]&X<2Gw)

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

x- স্পষ্টতই প্রথম ইনপুট নিন (তিনটি অক্ষরের স্ট্রিং) এবং এটি মুছুন। ক্লিপবোর্ড জি-তে অনুলিপি পেয়ে যায়, স্তর 1 স্বয়ংক্রিয়ভাবে (এই অংশটি @ লুইস মেন্ডোর উত্তর দ্বারা অনুপ্রাণিত হয়েছিল )।

" - স্পষ্টভাবে দ্বিতীয় ইনপুট নিন (শব্দের ঘরের অ্যারে), এর মাধ্যমে পুনরাবৃত্তি করুন।

l - 1 টি পরে ব্যবহার করতে হবে

1G - প্রথম ইনপুট পুশ করুন ('পিএসআর' বলুন)

@g - বর্তমান শব্দটিকে অ্যারে হিসাবে ঠেলাও

3XN- nchoosek- শব্দটি থেকে 3 টি বর্ণের সমস্ত সংমিশ্রণ পান

Xm- দেখুন লাইসেন্স প্লেট কোড 'পিএসআর' এই সংমিশ্রণের মধ্যে একটি কিনা। মিথ্যা হিসাবে 0 এবং সত্যের জন্য 1 প্রদান করে।

/- এই ফলাফলটির মাধ্যমে 1 টি ভাগ করা (যা আমরা আগে ধাক্কা দিয়েছিলাম)। 0 Infএর দশকে পরিবর্তন করে

@gn - বর্তমান শব্দটির দৈর্ঘ্য পান

*- বিভাগের ফলাফল দ্বারা দৈর্ঘ্যকে গুণ করুন। শব্দের মধ্যে 3 টি অক্ষর থাকে এমন সময় দৈর্ঘ্যটি দেয়, অন্যথায় ফিরে আসেInf

v - উল্লিখিতভাবে এই ফলাফলগুলিকে একক অ্যারেতে যুক্ত করুন

] - বন্ধ লুপ

&X< - সেই অ্যারে থেকে সর্বনিম্ন মানের সূচকটি পান ie অর্থাত্ সূচক যেখানে অক্ষর যুক্ত এবং সর্বনিম্ন দৈর্ঘ্যের সহ শব্দটি পাওয়া গেছে

2G - আবার দ্বিতীয় ইনপুট পুশ করুন

w - ন্যূনতম সূচকটি স্ট্যাকের উপরে ফিরিয়ে আনুন

) - সর্বনিম্ন দৈর্ঘ্যের সাথে বৈধ শব্দটি ফেরত দিয়ে ন্যূনতম সূচকের সাথে শব্দের অ্যারেতে সূচক

(অন্তর্নির্মিত আউটপুট।)


পুরোনো:

x"@g1Gy3XNXm1w/wn*v]&X<2Gw)

x"@g1Gy3XNXm1w/wn*v]2Gw2$S1)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.