রাষ্ট্রদূত এবং অনুবাদক


12

জাতিসংঘের একটি সম্মেলনে দু'জন রাষ্ট্রদূত একে অপরের সাথে কথা বলতে চান, তবে দুর্ভাগ্যক্রমে প্রত্যেকে কেবল একটি ভাষায় কথা বলে- এবং তারা একই ভাষা নয় not ভাগ্যক্রমে, তাদের বেশ কয়েকটি অনুবাদকের অ্যাক্সেস রয়েছে, যারা প্রত্যেকে কয়েকটি ভাষায় বোঝে এবং কথা বলে। আপনার কাজটি হ'ল অনুবাদকদের সংক্ষিপ্ততম শৃঙ্খলা নির্ধারণ করা (যেহেতু আপনি যতটা সম্ভব অনুবাদে হারিয়ে যেতে চান) যেহেতু দুই রাষ্ট্রদূত একে অপরের সাথে কথা বলতে দেয়।

আইনসংগ্রহ

ইনপুট: 2-অক্ষরের লোয়ারকেস স্ট্রিং (প্রতিটি রাষ্ট্রদূতের ভাষা) এবং দুটি ভাষার তালিকার একটি তালিকা (উপলব্ধ অনুবাদকের জন্য একটি তালিকা)

আপনি বিকল্পভাবে 2-বর্ণের কোডের পরিবর্তে পূর্ণসংখ্যায় নিতে পারেন।

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

অনুবাদকদের একটি বৈধ শৃঙ্খল হ'ল প্রথম অনুবাদক একজন রাষ্ট্রদূতের ভাষায় কথা বলেন, দ্বিতীয় এবং পরবর্তী অনুবাদকরা কমপক্ষে একটি ভাষা পূর্ববর্তী অনুবাদকের সাথে ভাগ করেন এবং শেষ অনুবাদক অন্য রাষ্ট্রদূতের ভাষায় কথা বলেন।

উদাহরণ

শূন্য-ভিত্তিক সূচক ব্যবহার:

es, en, [
    [es, en]
] ==> [0]

en, en, [] ==> []

en, jp, [
    [en, zh, ko, de],
    [jp, ko]
] ==> [0, 1]

es, ru, [
    [gu, en, py],
    [po, py, ru],
    [po, es]
] ==> [2, 1]

fr, gu, [
    [it, fr, de, es, po, jp],
    [en, ru, zh, ko],
    [jp, th, en],
    [th, gu]
] ==> [0, 2, 3]

fr, ru, [
    [fr, en],
    [en, ko, jp],
    [en, ru]
] ==> [0, 2]

de, jp, [
    [en, fr],
    [ko, jp, zh],
    [fr, po],
    [es, ko, zh],
    [de, en, th],
    [en, es],
    [de, fr]
] ==> [4, 5, 3, 1]

বিধি এবং অনুমান

  • স্ট্যান্ডার্ড আইও বিধি (যে কোনও সুবিধাজনক আই / ও ফর্ম্যাট ব্যবহার করুন) এবং নিষিদ্ধ লুফোলগুলি প্রয়োগ হয়।
  • আপনি ধরে নিতে পারেন যে ভাষাগুলি বলতে এবং বোঝার জন্য নিখুঁতভাবে প্রতিসাম্য এবং ভাষার মধ্যে সমস্ত সম্ভাব্য অনুবাদও সমান দক্ষ।
  • "কাছে যথেষ্ট" ভাষার কোনও ধারণা নেই concept উদাহরণস্বরূপ, যেখানে স্প্যানিশ প্রয়োজন সেখানে এক প্রান্তে পর্তুগিজ ভাষা ব্যবহার করা ঠিক নয় not
  • যদি একাধিক সংক্ষিপ্ত অনুবাদক চেইন থাকে তবে তাদের মধ্যে যে কোনও একটিই করবে।
  • যদি রাষ্ট্রদূতরা একই ভাষায় কথা বলতে থাকে তবে অনুবাদক তালিকাটি খালি থাকা উচিত
  • কোন রাষ্ট্রদূতের মধ্যে প্রথম বিষয়টি বিবেচ্য নয়; অনুবাদকের তালিকাটি ফরোয়ার্ড বা বিপরীত হতে পারে।
  • এই চ্যালেঞ্জের স্বার্থে রাষ্ট্রদূতরা কেবল একটি ভাষায় কথা বলেন
  • অনুবাদকরা কমপক্ষে দুটি ভাষায় কথা বলতে পারেন
  • 2-বর্ণের ভাষা কোডগুলির আসল ভাষার সাথে মিলের প্রয়োজন নেই
  • আপনি ধরে নিতে পারেন অনুবাদকদের একটি বৈধ ক্রম আছে
  • ক্রমানুসারে যদি মান অনুসারে আউটপুট দেয়, তবে কেবল প্রাসঙ্গিক নয়, উপলভ্য ভাষার সম্পূর্ণ সেট অন্তর্ভুক্ত করুন।

শুভ গল্ফিং!


2
দ্বি-চরিত্রের স্ট্রিংগুলিতে আই / ও বাধা কেন, পূর্ণসংখ্যাগুলি ঠিক তেমন করে না কেন?
জোনাথন অ্যালান

অনুবাদকদের তালিকার তালিকাটি সিএসভি ফর্মের মতো হতে পারে:en,fr,sp;en,gr;gr,fr
কুইন

@ কুইন স্ট্যান্ডার্ড আইও নিয়মগুলি হ্যাঁ বলে।
গরুর মাংস

রাষ্ট্রদূতদের কি শুরুতে এবং শেষে আউটপুটে অন্তর্ভুক্ত করা যেতে পারে?
নিক কেনেডি

@ নিক কেনেডি আমি এই বিষয়ে কিছু বলতে চাই না।
গরুর মাংস

উত্তর:


3

পাইথন 2 , 138 126 120 117 113 বাইট

F=lambda a,b,T,*U:a!=b and min([[t]+F(l,b,T,t,*U)for t in T if(t in U)<(a in t)for l in t-{a}]+[2*T],key=len)or[]

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

আরবোতে 3 বাইট থেক্স

রিটার্নস যেমন অনুবাদকদের একটি ন্যূনতম দৈর্ঘ্য তালিকা setভাষার এস, অর্থাত 'মান দ্বারা' থেকে Tতা সনাক্ত করতে মঞ্জুর aসাথে কথা বলতে b


if t not in U and a in tif(a in t)>U.count(t)4 বাইট সংরক্ষণ করতে পরিবর্তন করা যেতে পারে।
mypetlion

@ মাইপিটেশন - আমি একই রকম চিন্তাভাবনা করেছি এবং আরও 2 টি বের করে দিয়েছি -
চ্যাস ব্রাউন

*argsস্বরলিপি ব্যবহার করে 117
আরবো

@ আরবো: চমৎকার; 3 বাইট জন্য thx।
চ্যাস ব্রাউন

3

জেলি , 19 17 বাইট

ŒPŒ!€Ẏj@€fƝẠ$ƇḢḊṖ

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

ডায়াডিক লিঙ্কটি অনুবাদকদের বাম আর্গুমেন্ট হিসাবে এবং রাষ্ট্রদূতদের তালিকা হিসাবে (প্রতিটি তালিকায় ডাবল মোড়ানো) ডান যুক্তি হিসাবে গ্রহণ করে। অনুবাদকদের একটি তালিকা ফেরত দেয়, যার প্রত্যেকটি তাদের ভাষাগুলির একটি তালিকা।

2 কে বাট বাঁচানোর জন্য কেভিন ক্রুইজসেনকে ধন্যবাদ!

ব্যাখ্যা

ŒPŒ!€Ẏj@€fƝẠ$ƇḢḊṖ | A dyadic link taking a list of translators as left argument and a list of ambassadors (double-wrapped in lists) as right argument

ŒP                | Power set of translators
  Œ!€             | Permutations of each
     Ẏ            | Tighten, i.e. create a single list of all permutations of any length
      j@€         | Join the ambassadors with each set of translators
            $Ƈ    | Filter those where:
           Ạ      |   all
         fƝ       |   the neighbouring pairs have at least one in common
              Ḣ   | Take the first
               Ḋ  | Drop the first ambassador from the start
                Ṗ | Drop the second ambassador from the end

দৈর্ঘ্য অনুসারে বাছাইটি সরিয়ে আপনি 2 বাইট সংরক্ষণ করতে পারেন , কারণ পাওয়ারসেট + অনুমতিগুলি ইতিমধ্যে দৈর্ঘ্য অনুসারে বাছাই করা তালিকার ফলস্বরূপ।
কেভিন ক্রুইজসেন 14'19

কেভিন ক্রুজসেন ধন্যবাদ, ভাল পয়েন্ট!
নিক কেনেডি

2

05 এ বি 1 ই , 18 17 বাইট

怜€`ʒ²š³ªüå€àP}н

@ নিক কেনেডির জেলি উত্তর দ্বারা অনুপ্রাণিত , তাই তাকে উর্ধ্বমুখী করা নিশ্চিত করুন!

তালিকাগুলি তাদের সূচকের পরিবর্তে আউটপুট করে।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

æ                # Get the powerset of the (implicit) input-list of translators
                 #  i.e. [["ef","gh","bc"],["bc","ab"],["ef","cd","de"]]
                 #   → [[],[["ef","gh","bc"]],[["bc","ab"]],[["ef","gh","bc"],["bc","ab"]],[["ef","cd","de"]],[["ef","gh","bc"],["ef","cd","de"]],[["bc","ab"],["ef","cd","de"]],[["ef","gh","bc"],["bc","ab"],["ef","cd","de"]]]
 €œ              # Get the permutations of each
                 #  → [[[]],[[["ef","gh","bc"]]],[[["bc","ab"]]],[[["ef","gh","bc"],["bc","ab"]],[["bc","ab"],["ef","gh","bc"]]],[[["ef","cd","de"]]],[[["ef","gh","bc"],["ef","cd","de"]],[["ef","cd","de"],["ef","gh","bc"]]],[[["bc","ab"],["ef","cd","de"]],[["ef","cd","de"],["bc","ab"]]],[[["ef","gh","bc"],["bc","ab"],["ef","cd","de"]],[["ef","gh","bc"],["ef","cd","de"],["bc","ab"]],[["bc","ab"],["ef","gh","bc"],["ef","cd","de"]],[["bc","ab"],["ef","cd","de"],["ef","gh","bc"]],[["ef","cd","de"],["ef","gh","bc"],["bc","ab"]],[["ef","cd","de"],["bc","ab"],["ef","gh","bc"]]]]
   €`            # Flatten each one level down (4D list becomes 3D list)
                 #  → [[],[["ef","gh","bc"]],[["bc","ab"]],[["bc","ab"],["ef","gh","bc"]],[["ef","gh","bc"],["bc","ab"]],[["ef","cd","de"]],[["ef","cd","de"],["ef","gh","bc"]],[["ef","gh","bc"],["ef","cd","de"]],[["ef","cd","de"],["bc","ab"]],[["bc","ab"],["ef","cd","de"]],[["ef","cd","de"],["bc","ab"],["ef","gh","bc"]],[["ef","cd","de"],["ef","gh","bc"],["bc","ab"]],[["bc","ab"],["ef","cd","de"],["ef","gh","bc"]],[["bc","ab"],["ef","gh","bc"],["ef","cd","de"]],[["ef","gh","bc"],["ef","cd","de"],["bc","ab"]],[["ef","gh","bc"],["bc","ab"],["ef","cd","de"]]]
     ʒ           # Filter this 3D list by:
      ²š         #  Prepend the second input ambassador
                 #   i.e. [["bc","ab"],["ef","gh","bc"]] and "ab"
                 #    → ["ab",["bc","ab"],["ef","gh","bc"]]
        ³ª       #  Append the third input ambassador
                 #   i.e. ["ab",["bc","ab"],["ef","gh","bc"]] and "ef"
                 #    → ["ab",["bc","ab"],["ef","gh","bc"],"ef"]
          ü      #  For each adjacent pair of translator-lists:
           å     #   Check for each item in the second list, if it's in the first list
                 #    i.e. ["bc","ab"] and ["ef","gh","bc"] → [0,0,1]
            ۈ   #   Then check if any are truthy by leaving the maximum
                 #    → 1
              P  #  And then take the product to check if it's truthy for all pairs
                 #   i.e. ["ab",["bc","ab"],["ef","gh","bc"],"ef"] → [1,1,1] → 1
               # After the filter: only leave the first list of translator-lists
                 #  i.e. [[["bc","ab"],["ef","gh","bc"]],[["bc","ab"],["ef","gh","bc"],["ef","cd","de"]]]
                 #   → [["bc","ab"],["ef","gh","bc"]]
                 # (which is output implicitly as result)

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