এই জেমস বন্ড রেটিংগুলি বাছাই করুন


31

ভূমিকা

আমার দাদা জেমস বন্ডের ভক্ত, তবে কীভাবে তাঁর প্রিয় অভিনেতাদের র‌্যাঙ্ক করবেন সে সম্পর্কে তিনি সর্বদা অনিশ্চিত। সে হিসাবে, তিনি সবসময় তালিকাগুলি তৈরি করে যা অনেক কাজ is তিনি আমাকে এমন একটি প্রোগ্রাম তৈরি করতে বললেন যা তার জীবন আরও সহজ করে তুলবে, তবে তার জন্য আমার সময় নেই, আমাকে কাজ করতে হবে! সুতরাং আমি আপনাকে বলছি ছেলেরা।

চ্যালেঞ্জ

চ্যালেঞ্জ সহজ। ইনপুটটি নিম্নলিখিত ফর্ম্যাটে একটি তালিকা নিয়ে গঠিত:

<number> <space> <actor's name> <newline>

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

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

কত লাইন থাকতে পারে তার সীমা নেই।

আউটপুটটি কেবল কোনও ধরণের তালিকা হওয়া দরকার, এটি একটি অ্যারে, কমা বিভাজিত স্ট্রিং, ফাঁকা জায়গাগুলির দ্বারা পৃথক পৃথক মান, বা অন্য কোনও কিছু পুরোপুরি, যেমন

Pierce Brosnan, Sean Connery, David Niven

একটি চলন্ত নিউলাইন বা স্থান অনুমোদিত।

উদাহরণ ইনপুট এবং আউটপুট

ইনপুট:

1 শন কনারি

2 এমা ওয়াটসন

5 টিমোথি ডালটন

4 রজার মুর

3 ড্যানিয়েল ক্রেগ

আউটপুট:

টিমোথি ডালটন, রজার মুর, ড্যানিয়েল ক্রেইগ, শন কনারি

ইনপুট:

2 টিমোথি ডালটন

4 জর্জ লাজেনবি

5 জর্জ লাজেনবি

3 বব সিমন্স

আউটপুট:

জর্জ লাজেনবি, বব সিমন্স, টিমোথি ডালটন

ইনপুট:

3 শন কনারি

2 পিয়ার্স ব্রোসনান

1 শন কনারি

আউটপুট:

পিয়ার্স ব্রোসনান, শন কনারি

এটি একটি কোড গল্ফ হিসাবে, সংক্ষিপ্ততম কোড (বাইটে) জয়!

উপাঙ্গ

বন্ডের ভূমিকায় অভিনয় করা অভিনেতাদের তালিকা:

  • ব্যারি নেলসন
  • বব সিমন্স
  • শন কনারি
  • রজার মুর
  • ডেভিড নিভেন
  • জর্জ লাজেনবি
  • টিমোথি ডালটন
  • পিয়ার্স ব্রোসনান
  • ড্যানিয়েল ক্রেগ

3
পিপিসিজিতে স্বাগতম, এবং দুর্দান্ত চ্যালেঞ্জ! মনে রাখবেন যে শন কনারি আপনার তালিকায় দু'বার উপস্থিত হবে।
ডেনহাম কোট

@ ডেনহামকোটটি উদাহরণস্বরূপ যেটি এবং ভুলটি স্থির করেছে।
এমকেআইআই

2
আমরা কি ধরে নিতে পারি যে সমস্ত সম্ভাব্য অভিনেতা দুটি শব্দ (প্রথম নাম এবং শেষ নাম) দ্বারা চিহ্নিত হবে?
লুইস মেন্ডো

17
জেমস বন্ডের চরিত্রে দুর্দান্ত ছিলেন এমা ওয়াটসন।
অ্যালেক্স এ

3
হুম আমার উত্তর হ'ল echo Sean Conneryকারণ প্রত্যেকেই জানেন, কেবল একটি বন্ড রয়েছে
ব্যবহারকারী 902383

উত্তর:


2

পাইথ, 136 132 বাইট

_{mtcd\ f}stcTdc"BarryNelson BobSimmons SeanConnery RogerMoore DavidNiven GeorgeLazenby TimothyDalton PierceBrosnan DanielCraig"dS.z

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

ব্যাখ্যা

_ {mtcd \ f} stcTdc "ব্যারি নেলসন ববসিমন্স ..." ডিএস.জেড # .z = সমস্ত ইনপুট লাইনের তালিকা
                                             এসজেড # সাজানো ইনপুটটি আরোহণ
        এফ # ফিল্টার টি বর্তমান লাইনের সাথে টি দিয়ে সাজানো রেখাগুলি
            সিটিডি # স্পেসে একটি লাইন বিভক্ত করুন
          st # সংখ্যাটি ডিকার্ড করুন এবং প্রথম এবং শেষ নামটিতে যোগ দিন
               c "ব্যারিএনলসন ববসিমন্স ..." ডি # স্পেসে বন্ড অভিনেতা তালিকা বিভক্ত করুন ...
         } # অভিনেতার তালিকায় থাকা লাইনগুলি কেবল রাখুন
   এমটিসিডি \ # ফিল্টার করা লাইনগুলি থেকে নম্বরটি সরিয়ে দিন
_ {# ম্যাপিং ফলাফল থেকে সদৃশ সরান এবং ফলাফল বিপরীত


ছোট ত্রুটি, ক্রমটি হচ্ছে চারপাশের ভুল উপায় (এটি শেষ থেকে প্রথম দিকে যাওয়ার কথা, যখন আপনার প্রথমটি সর্বশেষে থাকে)।
এমকেআইআই

@ এমকেআইআই অনুমান করুন আমি সেই অংশটি ছড়িয়ে দিয়েছি ... এটি স্থির!
ডেনকার

12

রেটিনা ,201 197 191

\ D +
$ 0 $ * 1
G` ^ 1 + (ব্যারি নেলসন | বব সিমন্স | শন কননারী | রজার মুর | ডেভিড নিভেন | জর্জ লাজেনবি | টিমোথি ডালটন | পিয়ার্স ব্রসনন | ড্যানিয়েল ক্রেইগ) $
+ + `\ বি ((1 + +) \ ডি *) ¶ (\ 2. + +)
$ 3¶ $ 1
+ + S`1 + + (\ d +) ¶ (। * \ 1)
$ 2
1+ 

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

6 টি বাইট সংরক্ষণ করেছেন মার্টিনকে ধন্যবাদ!

রেগেক্সের সাথে হুই, বুদ্বুদ সাজান। নোট করুন যে দশটি বাইট শুরুর দিকে অ্যানারি রূপান্তর করতে দশমিক করতে ব্যয় করা হয়, যদি অ্যানারি ইনপুট ঠিক থাকে তবে তার দরকার নেই। এছাড়াও, যদি সংখ্যাগুলি মানুষের নামে নাও থাকতে পারে, তবে নন-বন্ড অভিনেতাদের শেষের দিকে সরানো এবং 1+( \Dসংস্করণ সহ অপরিবর্তিত) মুছে ফেলে আরও কয়েকটি বাইট সংরক্ষণ করা যেতে পারে ।

ব্যাখ্যা:

একটি রেটিনা প্রোগ্রামটি বিভিন্ন পর্যায়ে গঠিত, তাই আমি প্রতিটি পর্যায় আলাদাভাবে ব্যাখ্যা করব।

ধাপ 1:

\d+
$0$*1

ইনপুটটিতে অ্যানারি সহ সংখ্যাগুলি প্রতিস্থাপন করে। এটি রেটিনার বিশেষ প্রতিস্থাপন টোকেন ব্যবহার করে: $*যা পূর্ববর্তী টোকেনের বেস 10 মানের সমান সংখ্যক বার পরে অক্ষরটির পুনরাবৃত্তি করে।

ধাপ ২:

G`^1+ (Barry Nelson|Bob Simmons|Sean Connery|Roger Moore|David Niven|George Lazenby|Timothy Dalton|Pierce Brosnan|Daniel Craig)$

`স্টেজের আগে স্টাফ ব্যবহারের মোড পরিবর্তন করে। এটি গ্রেপ মোডে সক্রিয় হয়, যার অর্থ হ'ল রেগেক্সের সাথে মেলে না এমন প্রতিটি লাইন ফেলে দেওয়া হয়। অ্যাঙ্করগুলি কাছাকাছি ম্যাচগুলি পিছলে যাওয়ার থেকে রোধ করার জন্য প্রয়োজনীয়।

পর্যায় 3:

+`\b((1+)\D*)¶(\2.+)
$3¶$1

এটি বাছাই পর্যায়ে। +মোড প্রকাশ করে যে পর্যন্ত না প্রতিস্থাপন প্রয়োগ করা হলে পরিবর্তন করে তোলে এই পর্যায়ে পুনরাবৃত্তি করা উচিত যে (অর্থাত আমরা একটি নির্দিষ্ট পয়েন্ট পৌঁছানোর)। রেজেক্স একটি শব্দের সীমানা খুঁজে বের করে, তার পরে কিছু সংখ্যক 1গুলি এবং তারপরে বাকী সমস্ত রেখাটি নিউলাইন পর্যন্ত থাকে। তারপরে, যদি পরবর্তী লাইনে 1এর চেয়ে বেশি গুলি থাকে তবে রেজেক্স মিলবে এবং আমরা লাইনগুলি অদলবদল করব।

পর্যায় 4:

+s`1+(\D+)¶(.*\1)
$2

এই পর্যায়টি +আবার মোড ব্যবহার করে তবে মেটা-চরিত্রটিও নতুন লাইনের সাথে মেলে sto .এটির পরে সঠিক নকলের সাথে মিলে 1এবং পুরো ম্যাচটি এটির সাথে প্রতিস্থাপনের জন্য প্রথম নকলের পরে স্টাফ ক্যাপচার করে এটি সদৃশ লাইনগুলি সরিয়ে দেয় । এটি টাই ব্রেকিংয়ের ক্রমটি বিবেচনা না করেই কাজ করবে, কারণ নামগুলি ইতিমধ্যে যথাযথভাবে বাছাই করা হয়েছে, উপরের বড় সংখ্যাগুলির সাথে, সুতরাং আমরা সর্বদা ছোট মানগুলি বজায় রাখব।

মঞ্চ 5:

1+ 

এখানে খুব সহজ একটি, 1আমাদের বন্ডের সামনে আমাদের একগুচ্ছ গুলি থাকা ব্যতীত সবকিছুই সুশৃঙ্খল, তাই আমরা তাদের এবং তাদের পরে স্থানটি কিছুই না দিয়ে প্রতিস্থাপন করি।


... জঘন্য, এই ভাষা প্রতিদিন আমাকে আরও বেশি করে প্রভাবিত করে। ভাল হয়েছে, মার্টিন!
ফান্ডা মনিকার লসুইট

6

টিএসকিউএল ৪২6 বাইট (ডেটা + ইনপুট সহ)

গল্ফযুক্ত সমাধান:

create table A(Name varchar(99))insert into A values('Barry Nelson'),('Bob Simmons'),('Sean Connery'),('Roger Moore'),('David Niven'),('George Lazenby'),('Timothy Dalton'),('Pierce Brosnan'),('Daniel Craig')declare @I as table (R int, N varchar(99))insert into @I values(3,'Sean Connery'),(2,'Pierce Brosnan'),(1,'Sean Connery')select N from(select N,min(R) R from @I where N in (select N from A) group by N) x order by R desc

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

এসকিউএল এই ধরণের টাস্কে অ্যাক্সেল করে (কোনও পাং উদ্দেশ্য নয়): সেটগুলি সম্পর্কিত, অর্ডার করা, ডুপ্লিকেট কাটা ইত্যাদি ting

আপনার যা দরকার তা হ'ল এই জাতীয় অভিনেতাদের একটি সারণী তৈরি এবং পপুলেট করা:

create table Actor (Name varchar(99))
insert into Actor values
 ('Barry Nelson')
,('Bob Simmons')
,('Sean Connery')
,('Roger Moore')
,('David Niven')
,('George Lazenby')
,('Timothy Dalton')
,('Pierce Brosnan')
,('Daniel Craig')

এখন যদি আমরা ইনপুট হিসাবে একটি টেবিল-পরিবর্তনশীল ব্যবহার করি তবে আমাদের কেবল দুটি সেটের ছেদটি পেতে হবে। ডুপ্লিকেটগুলি সরানো এবং এসকিউএলে অর্ডার করা সত্যিই সহজ।

উদাহরণ 1:

declare @Input as table (Rnk int, Name varchar(99))
insert into @Input values
 (1,'Sean Connery')
,(2,'Emma Watson')
,(5,'Timothy Dalton')
,(4,'Roger Moore')
,(3,'Daniel Craig')

select Name
from
(
    select Name, min(Rnk) as R
    from @Input
    where Name in (select Name from Actor)
    group by Name
) x
order by R desc

উদাহরণ 2:

declare @Input as table (Rnk int, Name varchar(99))
insert into @Input values
 (2,'Timothy Dalton')
,(4,'George Lazenby')
,(5,'George Lazenby')
,(3,'Bob Simmons')

select Name
from
(
    select Name, min(Rnk) as R
    from @Input
    where Name in (select Name from Actor)
    group by Name
) x
order by R desc

গল্ফযুক্ত সংস্করণটি উদাহরণস্বরূপ ইনপুট 3 এর পুরো জিনিস thing

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


এটি কি লাইনের শুরুতে কোনও সংখ্যার সাথে কাজ করে, বা কেবল একক সংখ্যা?
এমকেআইআই

1
@MKII আমি ব্যবহৃত INT তাই এটি অসুস্থ সীমার মধ্যে কিছু গ্রহণ টাইপ -2.147.483.648 করার 2.147.483.647 এটা অসুস্থ খুব সারির যে সংখ্যা গ্রহণ =)
জাঁ

আপনার কোন সাবলেট দরকার নেই। আপনি কেবল order by min(R) descঅভ্যন্তরীণ নির্বাচন দিয়ে ব্যবহার করতে পারেন এবং min(R)নির্বাচন থেকে অপসারণ করতে পারেন । এটি 21 বাইট সংরক্ষণ করা উচিত।
রাজনগুল

এছাড়াও গল্ফ সংস্করণে কিছু অপ্রয়োজনীয় স্পেস রয়েছে।
রাজনগুল

charপরিবর্তে ব্যবহার করা varcharঅন্য 6 বাইট সংরক্ষণ করবে।
রাজনগুল

5

পার্ল, 242 179 217 বাইট

print reverse grep{/^(Barry Nelson|Bob Simmons|Sean Connery|Roger Moore|David Niven|George Lazenby|Timothy Dalton|Pierce Brosnan|Daniel Craig)$/&&!$s{$_}++}map{s/\d+ //;$_}sort{($a=~/(\d+)/)[0]<=>($b=~/(\d+)/)[0]}<>;

মন্তব্যের সাথে আরও ভাল ফর্ম্যাট করা সংস্করণ:

print
     # reverse ranking order
     reverse
     # filter entries...
     grep {
         # only actual bonds
         /^(Barry Nelson|Bob Simmons|Sean Connery|Roger Moore|David Niven|George Lazenby|Timothy Dalton|Pierce Brosnan|Daniel Craig)$/
         # only new bonds
         && !$s{$_}++
     } map {s/\d+ //;$_}         # remove leading digits+space
     # sort according to embedded numbers
     sort {($a=~/(\d+)/)[0] <=> ($b=~/(\d+)/)[0]}
     <>;                        # slurp input as list (list context)

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


প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম। উজ্জ্বল উত্তর, +1। আমি আপনাকে একটি ব্যাখ্যা যুক্ত করার পরামর্শ দিচ্ছি, তবে আমি সম্পাদনাটি দেখেছি। হয়তো অভিনেতাদের তালিকাটি কোনওভাবে সংকুচিত করা সম্ভব ...
wizzwizz4

@ wizzwizz4 আমি সেই রেজেক্সকে ছোট করার জন্য কয়েকটি জিনিস চেষ্টা করেছি, তবে ডিকোডিংয়ের ক্ষেত্রে সবসময় আপনার সাশ্রয়ের চেয়ে বেশি দাম পড়বে বলে মনে হয় --- এটি যা গ্রহণ করে তাতে এটি খুব কমই যায়।
ডেভিড মরিস

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

@ এমকেআইআই ওও, এর জন্য আমার 38 বাইট খরচ হয় :(
ডেভিড মরিস

যদি একটি এর evalপার্ল, এবং একটি বিল্ট-ইন কম্প্রেশন সিস্টেম ...
wizzwizz4

4

পাইথন 2, 250 বাইট:

lambda I:zip(*sorted({k:v for v,k in[x.split(' ',1)for x in I.split('\n')]if k in'Barry Nelson,Bob Simmons,Sean Connery,Roger Moore,David Niven,George Lazenby,Timothy Dalton,Pierce Brosnan,Daniel Craig'.split(',')}.items(),key=lambda t:-int(t[1])))[0]

ডেমো:

>>> L = ["Barry Nelson",
...     "Bob Simmons",
...     "Sean Connery",
...     "Roger Moore",
...     "David Niven",
...     "George Lazenby",
...     "Timothy Dalton",
...     "Pierce Brosnan",
...     "Daniel Craig"]

>>> I="""2 Timothy Dalton
... 4 George Lazenby
... 5 George Lazenby
... 3 Bob Simmons"""
>>> F(I,L)
('George Lazenby', 'Bob Simmons', 'Timothy Dalton')

>>> I = """1 Sean Connery
... 2 Emma Watson
... 5 Timothy Dalton
... 4 Roger Moore
... 3 Daniel Craig"""
>>> 
>>> F(I,L)
('Timothy Dalton', 'Roger Moore', 'Daniel Craig', 'Sean Connery')


আমি অনন্য নামগুলি সংরক্ষণের জন্য সেট বোধনার পরিবর্তে সন্ধানের জন্য অভিধান অভিধানটি ব্যবহার করেছি compre
কাসরামভিডি

10
আমি জেমস বন্ড হিসাবে এমা ওয়াটসনকে দেখার জন্য অর্থ প্রদান করব।
ডিজেক্লেওয়ার্থ

এটি কি লাইনের শুরুতে কোনও সংখ্যার সাথে কাজ করে, বা কেবল একক সংখ্যা?
এমকেআইআই

2

পাওয়ারশেল v3 +, 227 219 বাইট

$a=$args-split"`n"|sort|%{$c,$b=-split$_;$b-join' '}|?{$_-in('Barry Nelson,Bob Simmons,Sean Connery,Roger Moore,David Niven,George Lazenby,Timothy Dalton,Pierce Brosnan,Daniel Craig'-split',')}|select -u
$a[$a.count..0]

এর 121 বাইট হ'ল অভিনেতাদের তালিকা ...

ইনপুট লাগে $argsএবং -splitসঙ্গে নতুন লাইন তে এটি গুলি `n। এটিতে পাইপ করুন sort, যা প্রবেশের সংখ্যাগুলিকে আরোহণের অনুসারে বাছাই করবে, যা আপাতত ঠিক আছে। আমরা সেগুলি ফোরচ লুপে পাইপ করি |%{...}, প্রতিটি পুনরাবৃত্তিটি এন্ট্রি গ্রহণ করে, -splitএটি ফাঁকা স্থানগুলিতে, তারপরে -joinদ্বিতীয় অর্ধেকটি একটি স্থানের সাথে একসাথে ফিরে আসে (অর্থাত, শুরুতে সংখ্যাগুলি সরিয়ে ফেলতে পারে)। এই (আরোহী) সাজানো নামগুলি এখন পাইপলাইনে রেখে গেছে on আমরা সেই জায়গাগুলির মধ্য দিয়ে ?পাইপগুলি নিশ্চিত করি যে তারা -inঅভিনেতাদের অনুমোদিত তালিকা। অবশেষে, আমরা selectকেবলমাত্র অনন্য -uএন্ট্রি, যা সদৃশগুলির জন্য এটির মুখোমুখি হওয়া প্রথমটি নির্বাচন করবে (অর্থাত্ সর্বনিম্ন-ওজনযুক্ত) এবং বাকিগুলি বাতিল করে দেবে। আমরা এর ফলাফলের অ্যারে এতে সঞ্চয় করি $a

সুতরাং, এখন আমরা অভিনেতাদের একটি বাছাই করা আরোহণের তালিকা পেয়েছি। যেহেতু চ্যালেঞ্জ সাজানো প্রয়োজন, আমরা একটি ইন-জায়গা উলটাপালটা অপারেশন করবেন $aইন্ডেক্স দ্বারা থেকে $a.countনেমে 0

উদাহরণ

PS C:\Tools\Scripts\golfing> .\sort-these-james-bond-ratings.ps1 "1 Sean Connery`n2 Emma Watson`n5 Daniel Craig`n4 Roger Moore`n3 Daniel Craig"
Roger Moore
Daniel Craig
Sean Connery

সম্পাদনা করুন - সূচীটি করার সময় [অ্যারে] :: বিপরীত () ব্যবহার করার দরকার নেই


আপনি কি sort -Desঅ্যারে বিপরীত পরিবর্তে ব্যবহার করতে পারবেন না ? মঞ্জুর, পাওয়ারশেলের পরবর্তী সংস্করণগুলিতে এটি ভেঙে যেতে পারে তবে আমি সম্ভবত এটি বা আসল সমস্যা বলে মনে করি না;)
ভিজুয়ালমেলন

@ ভিজুয়ালমেলন আমি এটি বিবেচনা করেছি, তবে তারপরে সর্বনিম্নের চেয়ে সর্বোচ্চ মূল্যবান ক্রমটি select -uধরে রাখতে এবং ধরে রাখতে হবে , সুতরাং আমার উদাহরণের জন্য ড্যানিয়েল ক্রেগ এবং রজার মুরের অবস্থানগুলি বদলে যাবে। এটির স্থির করার জন্য আমার প্রয়াসগুলি অ্যারের বিপরীতে চেয়ে দীর্ঘতর কোডের ফলস্বরূপ।
অ্যাডমবর্কবার্ক

আহা, হ্যাঁ, এটি বোঝার জন্য, আমি এটি চালাতে সক্ষম হয়েছি এবং এটি পুরোপুরি মিস করেছি - এটি লজ্জাজনক কারণ কেবল সেই বিপর্যয়ের জন্য এত বর্জ্য রয়েছে ...
ভিজ্যুয়েলমেলন

2

পাইথন 309 286 বাইট

import sys
i='Barry Nelson.Bob Simmons.Sean Connery.Roger Moore.David Niven.George Lazenby.Timothy Dalton.Pierce Brosnan.Daniel Craig'.split('.')
print ', '.join(i.pop(i.index(x)) for x in zip(*sorted((x.strip().split(' ',1) for x in sys.stdin),None,lambda x:int(x[0]),1))[1] if x in i)

এটি কি লাইনের শুরুতে কোনও সংখ্যার সাথে কাজ করে, বা কেবল একক সংখ্যা?
এমকেআইআই

এটি করেনি, যদিও এটি এখন করে :)
এমটিপি

দেখে মনে হচ্ছে আপনি এখানে কিছু অতিরিক্ত জায়গা থেকে মুক্তি পেতে পারেন, উদাহরণস্বরূপ printকোনও )বা পরে]
wnnmaw

1

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

s=>s.split`
`.sort((a,b)=>(p=parseInt)(a)<p(b)).map(l=>l.replace(/\d+ /,"")).filter(l=>!p[l]&/^(Barry Nelson|Bob Simmons|Sean Connery|Roger Moore|David Niven|George Lazenby|Timothy Dalton|Pierce Brosnan|Daniel Craig)$/.test(p[l]=l))

ব্যাখ্যা

var solution =

s=>
  s.split`
`
  .sort((a,b)=>                 // sort the list by the number
    (p=parseInt)(a)<p(b)        // parseInt reads only the first number in a string
                                // the variable p also holds names that appeared in the
                                //     list previously
  )
  .map(l=>l.replace(/\d+ /,"")) // remove the number at the beginning of each line
  .filter(l=>
    !p[l]&                      // remove duplicates
    
    // Bond actor regex
    /^(Barry Nelson|Bob Simmons|Sean Connery|Roger Moore|David Niven|George Lazenby|Timothy Dalton|Pierce Brosnan|Daniel Craig)$/
    
    .test(p[l]=l)               // test for bondness and add the line to p
  )
<textarea id="input" rows="6" cols="40">1 Sean Connery
2 Emma Watson
5 Timothy Dalton
4 Roger Moore
3 Daniel Craig</textarea><br />
<button onclick="result.textContent=solution(input.value)">Go</button>
<pre id="result"></pre>

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