পোস্টম্যান ডেলিভারি


12

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

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

বুকে শহরের সমস্ত মেল রয়েছে তাই আমাকে আমার রাস্তার কেবল মেলগুলিই বেছে নিতে হবে।

মেলগুলি দ্রুত অর্ডার করতে আমার আপনার সহায়তা দরকার। আমি আপনাকে যা জিজ্ঞাসা করব তা হ'ল কোনও ফাংশন বা সম্পূর্ণ প্রোগ্রামটি লিখে:
- একটি রাস্তার নাম।
- নাগরিক সংখ্যার একটি তালিকা আমার পথে অনুসরণ করার আদেশ দিয়েছে।
- ঠিকানাগুলির একটি তালিকা (মেল বুক উপস্থাপন করে)।

এবং আমার রাস্তার কেবলমাত্র সম্বলিত ঠিকানাগুলির তালিকা আউটপুট করুন, নাগরিক সংখ্যাগুলির তালিকা অনুসরণ করে আদেশ করুন।

একটি ঠিকানার ফর্মটি রয়েছে:

 Person Name/n   
 CivicN Street Name

যেখানে সিভিকএন এমন একটি সংখ্যা যা '/' এবং একটি UPPERCASE পত্র (10 10 / বি) অনুসরণ করতে পারে। আপনি যদি পছন্দ করেন তবে ছোট হাতেরটি গ্রহণযোগ্য।

যদি রাস্তার নামগুলি ওভারল্যাপ করে তবে এগুলি বিভিন্ন রাস্তায় বিবেচনা করা হয়:

Church Road  != Saint Lorenz Church Road 

আমরা বাকী ঠিকানাটি সরলতার জন্য বাদ দিই (ধরে নিলাম এটি প্রতিটি মেইলের ক্ষেত্রে একই)

চিঠিগুলি দ্রুত পৌঁছে দিতে হবে তাই সংক্ষিপ্ত উত্তর জেতে।

উদাহরণ:

বিন্যাস:

 1 1/B     3 5 7      9 11 13     
 ==============================    
       2 4       4/B 6           

ইনপুট :

"Tea Avenue"
["1","1/B","2","4","3","5","7","4/B","6","9","11","13"]
["Mrs. Pie O. Pinky\n6 Tea Avenue","Ms. Kita I. Omeeha\n6 Tea Avenue","Mr. Raile A. Lee\n26 Uea Grove","Odd O. Nic\n76 Mira Road","Mrs. Fuel Tee\n78 Uea Grove","Ny O. Ondip\n55 Uea Grove","Mrs. Black\n67 Uea Grove","Ollie E.\n11 Tea Avenue","Mr. Urna Li\n75 Mira Road","Ms. Polly\n2 Tea Avenue"]

আউটপুট:

Ms. Polly
2 Tea Avenue  

Mrs. Pie O. Pinky 
6 Tea Avenue 

Ms. Kita I. Omeeha
6 Tea Avenue 

Ollie E.
11 Tea Avenue

ইনপুট :

"Church Road"
["1","3","5","5/B","2","4","7","7/B","6","9","9/B","11","11/B"]
["Billy Ray V.\n5 Church Roadside East","Ms. Mia\n5 Church Road","Mrs. Dadeos\n9/B Church Road","Dr. Ymin U.\n3 Church Road","Atty. Nerou\n3 Church Road","Ollie A. Chaim\n6 Saint Lorenz Church Road","Ms. Rose\n5 Church Road","Alf Taohy\n79 Berry Road","Ms. Ootr E.\n5 Saint Lorenz Church Road","Lol E.\n21 Berry Road","Ms. Norton\n2 Church Road"]

আউটপুট:

Dr. Ymin U.
3 Church Road

Atty. Nerou
3 Church Road

Ms. Mia
5 Church Road

Ms. Rose
5 Church Road

Ms. Norton 
2 Church Road" 

Mrs. Dadeos
9/B Church Road

পরীক্ষা জেনারেটর: এটি অনলাইন চেষ্টা করুন! বিন্যাস পরিবর্তন করতে স্ট্রিং_ওয়ার্পার_ফলে / ডান এবং বিভাজক পরিবর্তন করুন।

বিধি:
- মানক লুফোলগুলি নিষিদ্ধ।
- স্ট্যান্ডার্ড ইনপুট / আউটপুট পদ্ধতি।
- বাইট জিতে সংক্ষিপ্ত উত্তর।


5
আমি ভীত ছিলাম আপনি আমাদের ভ্রমণ ভ্রমণকারীর সমস্যা সমাধান করতে বলবেন solve
জিতসে

3
@ আজটেকো ধন্যবাদ! কেবলমাত্র ডেমো কোড নয়, আপনার পোষ্টে বেশ কয়েকটি পরীক্ষার কেস এম্বেড করার পক্ষে এটি সুপারিশ করা হয়।
জিতসে

2
আপনার অর্থ এই নয় যে " হ্যাঁ তারা ওভারল্যাপ করতে পারে, তারা বিভিন্ন রাস্তা " বা " না তারা ওভারল্যাপ করতে পারে না, আপনি পরীক্ষার কেসগুলি পাবেন না "? আপনার বাক্যটি এখনই স্ববিরোধী। ;) তবে আপনি যদি চ্যালেঞ্জটিতে এটি নির্দিষ্ট করে দেন তবে আমার আপত্তি নেই। যদি আপনার অর্থ এই হয় যে এর মতো পরীক্ষার কেসগুলি সম্ভব, তবে আমি এটির অ্যাকাউন্টে আমার 05AB1E উত্তরটি সম্পাদনা করব। এবং @ জিতসকে সেই ক্ষেত্রে তার পাইথন উত্তরটিও পরিবর্তন করতে হবে।
কেভিন ক্রুজসসেন

2
ওহ .. আমার অর্থ "হ্যাঁ তারা ওভারল্যাপ করতে পারে, তারা বিভিন্ন রাস্তায় বিবেচিত হয়"
আজটেকো

2
নিশ্চিত করতে পারেন. আমি অনেক বছর আগে শনিবার পোস্টম্যান হিসাবে কাজ করতাম। :) যদিও আমার বিতরণ জেলার প্রায় সমস্ত রাস্তায় কেবলমাত্র রাস্তার প্রান্তে আমার বাইকটি পার্ক করা, একপথে হাঁটতে এবং সমস্ত বিজোড় সংখ্যা সরবরাহ করা এবং তারপরে সমস্ত দিকের সংখ্যাটি করে অন্য দিকে হাঁটতে আরও বেশি দক্ষ ছিল আমার বাইকে আবার। তারপরে আবার বড় রাস্তাগুলি, ক্রিসমাসের মতো ব্যস্ত সময়কালে, বা বাণিজ্যিক ফোল্ডারে প্রচুর পরিমাণে, আমাকে সাধারণত কয়েকবারের মধ্যে আমার বাইকে ফিরে যেতে হয়েছিল কারণ আমি পুরো রাস্তার সমস্ত পোস্ট এক সাথে যেতে পারি না ..> ।>
কেভিন ক্রুইজসেন 21

উত্তর:


4

জেলি , 13 বাইট

,⁵KỴṪ⁼ɗƇ@ɗ€ẎY

একটি পূর্ণ প্রোগ্রাম তিনটি আর্গুমেন্ট গ্রহণ করে - আপনার নাম করা রাস্তায় নাগরিক সংখ্যার একটি তালিকা, মেল বুকে ঠিকানাগুলির একটি তালিকা এবং আপনার রাস্তার নাম - যা আপনাকে প্রদত্ত নাগরিক সংখ্যার ক্রম অনুসারে যে ঠিকানাগুলি প্রেরণ করতে হবে সেগুলি মুদ্রণ করে ।

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

কিভাবে?

,⁵KỴṪ⁼ɗƇ@ɗ€ẎY - Main link: civic numbers, addresses
          €   - for each (civic number):
         ɗ    -   last three links as a dyad - i.e. f(civic number, addresses):
,⁵            -     pair (the civic number) with 3rd program input (the street name)
  K           -     join (that) with a space -- i.e. X=civic number+' '+street name
        @     -     with swapped arguments i.e. f(addresses, X):
       Ƈ      -       filter (the addresses) keeping those for which:
      ɗ       -         last three links as a dyad - i.e. f(address, X):
   Ỵ          -           split (address) at newlines
    Ṫ         -           tail (get the second line)
     ⁼        -           equals (X)?
           Ẏ  - tighten (the list of lists to a single list)
            Y - join with newlines

4

05 এ বি 1 , 15 13 12 বাইট

ε²ðýUʒ¶¡Xk]˜

@ জোনাথন অ্যালান এর জেলি উত্তর পোর্টিং করে -2 বাইটস , তাই তাকে উর্ধ্বমুখী করা নিশ্চিত করুন!
-১ বাইট @ গ্রিমিকে ধন্যবাদ ।

ইনপুটগুলি ক্রমে রয়েছে: [নাগরিক সংখ্যার তালিকা], রাস্তার নাম, [ঠিকানার তালিকা]।

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

ব্যাখ্যা:

ε       # Map over the (implicit) input-list of civic numbers
 ²      #  Push the second street-input
  ðý    #  And join the two values by a space
    U   #  Pop and store this street + num string in variable `X`
 ʒ      #  Filter the (implicit) input-list of addresses by:
  ¶¡    #   Split on newlines
    Xk  #   Get the index of string `X` (street + num) in this list,
        #   which will be either -1 (not found), 0 (first address-line), or 
        #   1 (second address-line), and only 1 is truthy in 05AB1E
]       # After both the inner filter and outer map:
 ˜      # Flatten the array to remove any empty inner lists
        # (after which the result is output implicitly)

সম্পাদনার জন্য অপেক্ষা করছি, সহায়তার জন্য অনেক ধন্যবাদ!
আজটেকো

আমি "বিলি রে ভি। \ N5 চার্চ রোডসাইড ইস্ট" যুক্ত করে ওভারল্যাপ টেস্ট কেস দিয়ে একটি পরীক্ষার কেস সম্পাদনা করেছি, তিনি আউটপুটে উপস্থিত হওয়া উচিত নয়, দয়া করে আপনার উত্তরটি ঠিক করুন। অসুবিধার জন্য দুঃখিত, আমি ভবিষ্যতে আমার চ্যালেঞ্জগুলিতে আরও মনোযোগ দেব।
আজটেকো

গ্রিমির প্রথম গল্ফিং পরামর্শ ব্যবহার করে @ আজটেকো এখনই ঠিক করা উচিত ।
কেভিন ক্রুইজসেন

আপনার সময় জন্য ধন্যবাদ!
আজটেকো

2

জাভাস্ক্রিপ্ট (নোড.জেএস) , 58 বাইট

(s,n,a)=>n.flatMap(n=>a.filter(x=>x.split`
`[1]==n+' '+s))

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

মন্তব্য

(s, n, a) =>          // s = street name, n[] = civic numbers, a[] = addresses
  n.flatMap(n =>      // for each civic number n in n[]:
    a.filter(x =>     //   for each address x in a[]:
      x.split`\n`[1]  //     keep it if the 2nd part is equal to
      == n + ' ' + s  //     n + space + expected street name
    )                 //   end of filter()
  )                   // end of flatMap() (empty entries are discarded)

প্রথম উত্তর! তুমি আমার কাজ বাঁচিয়েছ! উন্নতির জন্য ধন্যবাদ
বিটিডব্লিউ


2

পার্ল 5 , 51 বাইট

sub{my($r,$a,@B)=@_;map{$n=$_;grep/
$n $r$/,@B}@$a}

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


আমি "বিলি রে ভি। \ N5 চার্চ রোডসাইড ইস্ট" যুক্ত করে ওভারল্যাপ টেস্ট কেস দিয়ে একটি পরীক্ষার কেস সম্পাদনা করেছি, তিনি আউটপুটে উপস্থিত হওয়া উচিত নয়, দয়া করে আপনার উত্তরটি ঠিক করুন। অসুবিধার জন্য দুঃখিত, আমি ভবিষ্যতে আমার চ্যালেঞ্জগুলিতে আরও মনোযোগ দেব।
আজটেকো

রেগেক্সের $শেষ প্রান্তে অ্যাঙ্কর যুক্ত +1 বাইট স্থির করে
নাহুয়েল ফুইলুল

আপনার সময়ের জন্য ধন্যবাদ
আজ্টেকো


1

পাইথন 3, 79 85 বাইট ( স্কুইডকে ধন্যবাদ )

d=lambda s,n,a:n and[k for k in a if k.split('\n')[1]==n[0]+' '+s]+d(s,n[1:],a)

পুরানো:

d=lambda s,n,a:[k for k in a if k.split('\n')[1]==n[0]+' '+s]+d(s,n[1:],a)if n else[]

1
By৯ বাইট যদি না হয় এটি কোনওভাবে ভেঙে যায়
স্কুইড

শীতল, আমি জানতাম না যে আপনি 'এবং' এর মতো আউটপুট তৈরি করতে ব্যবহার করতে পারেন
লেগোহরিন

1

পাইথন 3 , 65 বাইট

lambda s,n,m:[a for i in n for a in m if a.endswith('\n%s '%i+s)]

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

পাইথন 2 এও কাজ করে।

iনাগরিক সংখ্যার তালিকার প্রতিটি সংখ্যার জন্য n, ফাংশনটি মেলের তালিকার সমস্ত ঠিকানার উপরে পুনরাবৃত্তি করবে এবং নাগরিক সংখ্যা এবং রাস্তার নামের সাথে মিলিত হওয়ার সাথে একটি থাকবে । বাছাই করা এবং ফিল্টার করা তালিকার ফলাফল।amisa


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