একটি অ্যারের মধ্যে বৃহত্তম এবং ক্ষুদ্রতম সংখ্যাটি সন্ধান করুন


29

কাজটি

কাজটি খুব সাধারণ। কেবলমাত্র পূর্ণসংখ্যা এবং স্ট্রিং যুক্ত একটি অ্যারে দেওয়া হয়েছে , বৃহত্তম সংখ্যা এবং ক্ষুদ্রতম সংখ্যাকে আউটপুট দেয়।

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

Input: [1, 2, 3, 4, 5, 6, 7, 8]
Output: 1, 8

Input: [5, 4, 2, 9, 1, 10, 5]
Output: 1, 10

Input: [7, 8, 10, "Hello", 5, 5]
Output: 5, 10

স্ট্রিংয়ের সংখ্যাগুলি পূর্ণসংখ্যার হিসাবে বিবেচনা করা হয় না:

Input: [1, 2, 3, 4, "5"]
Output: 1, 4

যদি কেবল একটি পূর্ণসংখ্যা থাকে তবে এটি উভয় বৃহত্তম এবং ক্ষুদ্রতম পূর্ণসংখ্যা:

Input: [1]
Output: 1, 1

Input: ["1", "2", "3", "4", 5]
Output: 5, 5

বিধি

  • আপনি ধরে নিতে পারেন যে কোনও অ্যারেতে সর্বদা কমপক্ষে একটি পূর্ণসংখ্যা থাকে।
  • সমস্ত পূর্ণসংখ্যা ইতিবাচক (0 এর চেয়ে বেশি)
  • আউটপুট ক্রম কিছু যায় আসে না।
  • এটি , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমাটি জয়!
  • স্ট্রিংগুলিতে সমস্ত মুদ্রণযোগ্য এএসসিআইআই অক্ষর থাকতে পারে ( 32 - 126) এবং খালি নয়।

স্ট্রিংগুলিতে কীভাবে ইনপুটটিতে প্রতিনিধিত্ব করা হয়?
feersum

@feersum যে আপনার ভাষার উপর নির্ভর করবে না?
মার্টিন এেন্ডার 5:25

@ ফেয়ারসাম সম্ভবত পালানোর চরিত্রগুলির সাথে, তবে ভাষা যদি এটি পরিচালনা করে না, তবে তা ঠিক।
আদনান

@ মার্টিনব্যাটনার যদি স্ট্যান্ডিনের কাছ থেকে ইনপুট নেওয়া হয় তবে এটি কোন ভাষাটি ব্যবহৃত হয় তার উপর নির্ভর করে না।
ফেয়ারসুম

3
@ ফেয়ারসাম এটি আমার কাছে নতুন। এমনকি এসটিডিইএন থেকে [1, 2, 3] 1 2 3এবং {1; 2; 3}সমস্ত বৈধ ইনপুট ফর্ম্যাটস, তাই এসটিডিইএন থেকে প্রাপ্ত স্ট্রিং আক্ষরিক জন্য কেন এটি আলাদা হওয়া উচিত তা আমি দেখতে পাই না।
মার্টিন এন্ডার

উত্তর:


9

গুরুতরভাবে, 9 6 বাইট

,ì;M@m

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

কিভাবে এটা কাজ করে

,                              Read list input
 ì                             Remove everything but numbers from it
  ;                            Make a copy
   m                           Extract its min value
    @M                         Extract the other one's max value
                               Implicit output (max then min)

আহ, হ্যাঁ, আমি এই জাতীয় আদেশ খুঁজছিলাম। তবে দস্তাবেজগুলি অনুসন্ধান করা সহজ নয়।
কুইন্টোপিয়া

আমি রাজী. দস্তাবেজগুলি আমার পরবর্তী বড় লক্ষ্য।
মেগো

11

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

2 বাইট সম্পাদনা করুন thx @ নীল

দ্রষ্টব্য: x===+xএবং যদি xএকটি সংখ্যা হয় তবে এটি সত্য

a=>[Math.max(...a=a.filter(x=>x===+x)),Math.min(...a)]

3
বাইরের ()গুলি কেন ?
নীল

@ নিল কি বাহ্যিক ()? কেন পৃথিবীতে আমার বাইরের () হওয়া উচিত?
edc65

এটি একটি ফাংশন দেয়, আপনাকে এখনও এটি কল করতে হবে। (বা কেবল একটি => অপসারণ)
মাইকেল থেরিয়ট

2
হ্যাঁ এটি একটি বেনামি ফাংশন। জাভাস্ক্রিপ্টে উত্তর পোস্ট করার পক্ষে এটি একটি সাধারণ উপায়
@ মিশেল থিওরিট

@ মিশেল থেরিয়ট ডিফল্টরূপে , আমরা সবসময় সম্পূর্ণ প্রোগ্রামের প্রয়োজনের চেয়ে সাবমিশনগুলিকে স্বতন্ত্র ফাংশন হিসাবে অনুমতি দেই।
অ্যালেক্স এ।

8

পাইথ, 14 11 10 বাইট

hM_BS^I#1Q

এটি অনলাইনে চেষ্টা করুন। পরীক্ষা স্যুট.

ব্যাখ্যা

  • Q: মূল্যায়ন ইনপুট
  • #: এটি ফিল্টার করুন:
    • I: মান একই পরে:
      • ^…1 এটি ক্ষমতায় উত্থাপন 1
  • S: সাজান যে
  • _B: অ্যারে তৈরি করুন [previous, reversed(previous)]
  • hM: প্রতিটি আইটেমের প্রথম আইটেম নিতে

সবচেয়ে শক্তিশালী অংশটি হল স্ট্রিংগুলি অপসারণের গল্ফ, যা বর্তমানে 4 বাইট নেয়। ^<str>1ক্রমটির প্রথম কার্তেসিয়ান শক্তি গ্রহণের কারণে বর্তমান পদ্ধতির কাজ করে (মূলত স্ট্রিংয়ের অক্ষরের তালিকা) তবে ^<int>1এটি কেবল পরিচয়ের কাজ।


এইচআরএম, আপনি *#_1Qস্ট্রিংগুলি অপসারণ করতেও ব্যবহার করতে পারেন, যদি কোনও পরিবর্তনশীলটিকে নেতিবাচক থেকে আরম্ভ করা হয় তবে সংক্ষিপ্ত হবে ...
FryAmTheEggman

7

পাইথন 2, 42 বাইট

পাইথন 2-তে, তুলনা করার সময় পূর্ণসংখ্যার স্ট্রিংগুলির চেয়ে সর্বদা কম থাকে, তাই একটি min(s)সরলতম সবচেয়ে ছোট পূর্ণসংখ্যার সন্ধান করবে। যদিও সর্বাধিক সন্ধান করার সময়, আমাদের অবশ্যই প্রথমে স্ট্রিংগুলি ফিল্টার করতে হবে। বেনামে ফাংশন একটি সিকোয়েন্স গ্রহণ করে এবং সর্বনিম্ন এবং সর্বাধিক সহ একটি টিপল দেয়।

lambda s:(min(s),max(x for x in s if''>x))

উদাহরণ:

[1,'77', 6, '', 4] -> (1, 6)

3
lambda a:তার আগে আপনার আটকে থাকা দরকার ।
ডুরকনব

if x>0বা if''>xএকটি বাইট সংরক্ষণ করুন।
grc

@ ডুরকনব, এখন যেমন ল্যাম্বদা পরামর্শ দেওয়া হয়েছে তেমন।
লজিক নাইট

1
@ ডেনিস, আমি এটি জানতাম না। আমি পরিষ্কার তুলনা শুধুমাত্র পাইথন 2. কাজ করতে সমাধান সম্পাদনা করেছি
লজিক নাইট

1
বিল্ডিং আপ: lambda s:(min(s),-min(-1*_ for _ in s))(39 বাইট)
ফরাসী বোর্সিক

7

জেলি, 8 বাইট

|f¹Ṣ0,1ị

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

পটভূমি

একটি নিখুঁত বিশ্বে, তালিকাটিকে নিজের একটি সমতল সংস্করণ দিয়ে ছেদ করা যথেষ্ট। স্ট্রিংগুলি কেবল জেলির চরিত্রের তালিকা, সুতরাং মূল তালিকায় পূর্ণসংখ্যা এবং স্ট্রিং থাকতে পারে, সমতল সংস্করণটিতে কেবল পূর্ণসংখ্যার আন্তঃসংখ্যকে রেখে পূর্ণসংখ্যা এবং অক্ষর থাকবে।

বাস্তব বিশ্বে, উভয় ইনপুট এবং স্ট্রিং লিটারেলের উভয় পার্সার দৈর্ঘ্যের স্ট্রিংয়ের পরিবর্তে অক্ষর অর্জন করে a একটি ফাংশনে সিঙ্গলটন স্ট্রিংয়ের একমাত্র উপায় [”a]হ'ল এটি "ম্যানুয়ালি" হিসাবে এনকোড করা, যেমন , যা একটি একটি অ্যারেতে আবৃত অক্ষর।

এটি মোট 7 বাইটের জন্য একটি বাইট সংরক্ষণ করবে ( এটি অনলাইনে চেষ্টা করুন! )

fFṢ0,1ị

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

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

উদাহরণস্বরূপ, [1, "2", "34", "-5", "a", "bc"]নিজের সাথে তালিকার বিটওয়্যার ORing ফলন করবে

[1, 2, [3, 4], [0, 5], 0, [0, 0]]

মূল তালিকার সাথে ফলাফলটি ছেদ করে আমরা অ্যারে এবং পূর্ণসংখ্যার থেকে মুক্তি পাই যা মূল তালিকায় উপস্থিত ছিল না।

কিভাবে এটা কাজ করে

|f¹Ṣ0,1ị  Main link. Input: A (list)

|         Bitwise OR the list A with itself.
 f¹       Filter the result by presence in A.
   Ṣ      Sort the resulting list of integers.
    0,1ị  Retrieve the elements at those indexes.
          Indices are 1-based and modular in Jelly, so 0 is the last (maximum),
          and 1 is the first (minimum).

6

গণিত, 20 বাইট

MinMax@*Select[#>0&]

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

MinMax@*Select[#>0&]@{1,2,3,4,"5"}
(* {1,4} *)

1
ওখানে কেন *? দেখে মনে হচ্ছে আপনি এটি কেটে মাত্র 19 এ যাবেন।
একটি সিমন্স

1
@ এ্যাসিমন্স এটি প্রয়োজনীয় is MinMax@Select[#>0&]একটি বৈধ বিশুদ্ধ ফাংশন নয়।
এনজিপিপোরগান

1
@ এশিমন্স @*হ'ল ফাংশন কম্পোজিশন, যেখানে @ফাংশন অ্যাপ্লিকেশন রয়েছে।
মার্টিন ইন্ডার

1
MinMax@Select[# > 0 &][{1, 2, 3, 4, "Hello", 5}]একটি সঠিক প্রতিক্রিয়া দেয়
একটি সিমন্স

1
@ এ্যাসিমনস MinMax@Select[# > 0 &]একটি প্রতীক বরাদ্দ চেষ্টা করুন , বা কেবল এটি মূল্যায়ন।
এনজিপিপোরগান

6

রুবি, 57 36 29 বাইট

নবাবি এখানে, সুতরাং আমি জানি না যে কোনও মানক বা সর্বজনস্বীকৃত স্থান / ব্যবহৃত বাইট গণনা করার উপায় আছে, কোনও সাহায্যের খুব প্রশংসা হবে!

মানটওয়ার্ক এবং ডোরকনব এর মন্তব্য অনুসারে সম্পাদিত!

->n{(n.map(&:to_i)&n).minmax}

পরীক্ষা

2.3.0 :076 > f=->n{[(n.map(&:to_i) & n).min, (n.map(&:to_i) & n).max]}
 => #<Proc:0x007ff7650ee868@(irb):76 (lambda)>
2.3.0 :077 > f[[7, 8, 10, "Hello", 5, 5]]
 => [5, 10]

1
36 টি অক্ষর:->n{[(x=n.map(&:to_i)&n).min,x.max]}
manatwork

2
মিনম্যাক্স ব্যবহার করে 29 বাইট:->a{(a.map(&:to_i)&a).minmax}
ডোরকনব

5

সিজেম, 15 13 বাইট

{_:z&$2*_,(%}

একটি নামবিহীন ব্লক (ফাংশন) যা স্ট্যাকের উপর ইনপুট অ্যারের প্রত্যাশা করে এবং আউটপুট অ্যারেটিকে তার জায়গায় রেখে দেয়।

সমস্ত পরীক্ষার কেস চালান।

ব্যাখ্যা

_     e# Duplicate.
:z    e# Map over list: a) take abs() of integer elements (a no-op) or b) wrap strings
      e# in an array.
&     e# Set intersection: only the integers will appear in both arrays.
$     e# Sort.
2*    e# Repeat array twice (to make the code work with single-integer input).
_,    e# Duplicate, get length N.
(%    e# Decrement, get every (N-1)th element, i.e. the first and the last.

আমি ই) এবং ই (অ্যাডিটসুতে) উপার্জন করেছি He তিনি তা গ্রহণ করেন নি
ব্যবহারকারীর নাম

@ ব্যবহারকারীর নাম .ক আমি সেগুলি সত্যিই দরকারী বলে মনে করি না। একটি দ্বি-চর অপারেটর যুক্ত করা যা কেবলমাত্র বর্তমান সমাধানের উপর একটি একক বাইট সংরক্ষণ করে আদিতসু বাস্তবায়িত হওয়ার মতো কিছু নয় এবং এগুলি ব্যবহার করার জন্য আরও কার্যকর বৈশিষ্ট্য থাকতে হবে বলে আমি মনে করি।
মার্টিন এন্ডার

এটি 3 বাইট সংরক্ষণ করবে:q~_e(ae)a+
ব্যবহারকারীর নাম

@ username.ak আচ্ছা এটি ধরেই নিয়েছে e(এবং e)এটি স্ট্রিং বা এমন কিছু উপেক্ষা করবে যা অসঙ্গত বলে মনে হচ্ছে। এবং যদি এটি স্ট্রিংগুলির সাথে তুলনা জড়িত করে তবে এটি সম্ভবত একইভাবে ব্যর্থ হবে $এবং e>স্ট্রিংগুলির সাথে পূর্ণসংখ্যার তুলনা করতে পারে না।
মার্টিন ইন্ডার

5

হাস্কেল, 41 39 বাইট

f x=[minimum,maximum]<*>[[i|Left i<-x]]

হাসকেলে একটি তালিকার সমস্ত উপাদান একই ধরণের হওয়া উচিত, তাই আমি মিশ্রিত করতে পারি না Integerএবং String। যাইহোক, Eitherএকটি এক মধ্যে দুটি প্রকারের একত্রিত করার জন্য টাইপ আছে । ইনপুট তালিকাটি Either Integer String1 প্রকারের । fইন্টিজারগুলি ফিল্টার করে, Eitherমোড়ক সরিয়ে দেয়, তালিকাকে একটি নতুন উপাদান হিসাবে তালিকা তৈরি করে (যেমন [[1,2,3]]), যাতে <*>এটি প্রথম যুক্তিতে প্রদত্ত ফাংশনগুলি প্রয়োগ করতে পারে।

ব্যবহারের উদাহরণ: f [Left 1, Left 3, Right "Hello", Left 2]-> [1,3]

সম্পাদনা করুন: @ xnor খেলায় নিয়ে <*>আসে এবং 2 বাইট সংরক্ষণ করে। ধন্যবাদ!


1 প্রকৃতপক্ষে এটি দ্বিতীয় ধরণের সম্পূর্ণ পলিমারফিক হয় কারণ Stringসম্পত্তিটি কখনও ব্যবহৃত হয় না।


প্যাটার্ন ম্যাচের সাথে দুর্দান্ত ধারণা। বিপরীত মানচিত্রের সাহায্যে আপনি দুটি অক্ষর সংরক্ষণ করতে পারেন:f x=[minimum,maximum]<*>[[i|Left i<-x]]
xnor

@ এক্সনর: খুব সুন্দর। অনেক ধন্যবাদ!
নিমি


4

গণিত, 28 বাইট

MinMax[#/._String->Nothing]&

আমি এখনও আপনার NothingMinMax@*Select[NumberQ]
আবেশটি

@ LegionMammal978 "সমস্ত পূর্ণসংখ্যার ইতিবাচক" ব্যবহার করুন! আমার উত্তর দেখুন।
এনজিপিপোরগান

1
ভাল সমাধান ছেলেরা, আমি সেভাবে এটি করার কথা ভাবা উচিত ছিল! @ লজিওনম্যামাল ৯9৮ এর Nothingএকটি বিশেষ অর্থ রয়েছে। ম্যাথমেটিকা ​​10.2 থেকে এটি স্বয়ংক্রিয়ভাবে তালিকা থেকে সরানো হয়।
একটি সিমন্স

@ লেজিওনম্যামাল 978 Nothingসর্বশেষতম সংস্করণগুলির একটি ডকুমেন্টেড ফাংশন।
মিঃ উইজার্ড

4

পিএইচপি, 50 48 বাইট

<?=min($a=array_filter($a,is_int)).', '.max($a);

1
আমাকে 2 মিনিট মারবে :)।
টিএমএইচ

2
এটা সাধারণত নিষিদ্ধ ঠাউর যে ইনপুট একটি পরিবর্তনশীল ইতিমধ্যে। যাইহোক, আপনি 'চারপাশে সরিয়ে দুটি বাইট সংরক্ষণ করতে পারেন is_int
ব্ল্যাকহোল

ধন্যবাদ ব্ল্যাকহোল বুঝতে পারিনি। আমি আপনার উদ্ধৃতি অপসারণটি ব্যবহার করেছি :)
পলস্কিনার

4

রেটিনা , 71

গল্ফিং সহায়তার জন্য @ মার্টিনব্যাটনারকে (সর্বদা হিসাবে) ধন্যবাদ

গল্ফ-ভিত্তিক প্রতিযোগিতামূলক নয়, তবে এটি রেটিনায় পূর্ণসংখ্যার বুদ্বুদ বাছাই বাস্তবায়ন আকর্ষণীয়।

ধরে নিই ইনপুটটিতে থাকা সমস্ত স্ট্রিংগুলি "ডাবল-কোটেড হয় এবং এতে কোনও পালানো ডাবল কোট থাকে না \"

A`"
¶

\d+
$&$*a $&$*a
+`\b(a+) +\1(a+)\b
$1$2 $1
 +[a ]+ +

(a)+
$#1

ইনপুটটি নিউলাইন-পৃথক।

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


আমি মনে করি <space>.*<space>লোভের কারণে আপনি দ্বিতীয় থেকে শেষ পর্যায়ে ব্যবহার করতে পারেন ।
FryAmTheEggman

4

গণিত , 14

#&@@@MinMax@#&

উদাহরণ:

tests = {
   {1, 2, 3, 4, 5, 6, 7, 8},
   {5, 4, 2, 9, 1, 10, 5},
   {7, 8, 10, "Hello", 5, 5},
   {1, 2, 3, 4, "5"},
   {1},
   {"1", "2", "3", "4", 5}
 };

# & @@@ MinMax@# & /@ tests
{{1, 8}, {1, 10}, {5, 10}, {1, 4}, {1, 1}, {5, 5}}

ব্যাখ্যা:

যখন MinMaxঅ সাংখ্যিক ইনপুট পায় এটি সমস্যা হ্রাস যতটা এটা করতে পারেন, তারপর আবৃত পদ ছেড়ে Minএবং Max:

MinMax @ {7, 8, 10, "Hello", 5, 5}
{Min[5, "Hello"], Max[10, "Hello"]}

স্ট্রিংগুলি সংঘটিত হয় এমন স্বয়ংক্রিয় ক্রমগুলির কারণে পূর্ণসংখ্যার অনুসরণ হয়।

Applylevelspec {1}, সাঁটে লেখার @@@, তারপর অ পারমাণবিক উপাদানের প্রথম আর্গুমেন্ট টান করতে ব্যবহৃত হয়। 5এখানে যে অনুচ্চারিত নোট :

foo @@@ {5, Max[10, "Hello"]}
{5, foo[10, "Hello"]}

3

ওরাকল এসকিউএল 11.2, 189 বাইট

SELECT MIN(TO_NUMBER(i)),MAX(TO_NUMBER(i))FROM(SELECT REGEXP_SUBSTR(:1,'[^,]+',1,LEVEL)i FROM DUAL CONNECT BY LEVEL<REGEXP_COUNT(:1,',')+2)WHERE TRIM(TRANSLATE(i,' 0123456789',' '))IS NULL;

আন golfed

SELECT MIN(TO_NUMBER(i)),MAX(TO_NUMBER(i)) 
FROM  (
        SELECT REGEXP_SUBSTR(:1,'[^,]+',1,LEVEL)i 
        FROM   DUAL 
        CONNECT BY LEVEL<REGEXP_COUNT(:1,',')+2
      )
WHERE TRIM(TRANSLATE(i,' 0123456789',' '))IS NULL;

সাব-কোয়েরি অ্যারে পার্স করে এবং প্রতি সারি প্রতি একটি উপাদান দিয়ে একটি ভিউ পপুলেট করতে এটি বিভক্ত করে। তারপরে অ সংখ্যাসূচক উপাদানগুলি ফিল্টার আউট করা হয়।

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


আপনি []অ্যারেতে রেখে যাচ্ছেন তাই আপনি যদি সারণীর প্রথম বা শেষ উপাদান হন তবে আপনি সর্বোচ্চ বা সর্বনিম্ন নির্বাচন করছেন না। আপনারও আপনার পুরো ধারাটির দরকার নেই, আপনি ইতিমধ্যে সমষ্টিগুলি নির্বাচন করছেন যাতে আপনার ফিল্টার করার দরকার নেই। আপনার রেজিজেসে সংখ্যার অক্ষর সন্ধান করুন এবং সাব-কোয়েরিতে নম্বর রূপান্তরটিকে ধাক্কা দিন (ধাক্কা পূর্বাভাসের খুব সামান্য বিপদ) এবং এটি 126 বাইট হয়ে যায়:select min(i),max(i)from(select to_number(regexp_substr(&1,'\d+',1,level))i from dual connect by level<=regexp_count(&1,'\d'))
বেন

এখানে +দ্বিতীয় রেজেক্সে কোনও প্রয়োজন নেই কারণ আপনি কয়েকটি অতিরিক্ত সারি তৈরি করে (বাইট সংরক্ষণ করে) তাতে কিছু আসে যায় না। এটি লক্ষণীয় যে যদিও আপনি যদি একটি স্ট্রিং সংখ্যার সমন্বয়ে তৈরি করেন তবে আপনি এটিকে এড়ানো যাবেন না; একই প্যাকেজে ওভারলোড হওয়া ক্রিয়াকলাপগুলির প্রয়োজন, এটি মোটেও সুন্দর নয়।
বেন

3

vimscript, 25 বাইট

g/"/d
sort n
t.
t.
2,$-1d

হ্যাঁ, এটা ঠিক, ভিমস্ক্রিপ্ট।

ফর্ম ইনপুট আশা

1
2
3
4
"5"

এবং ফর্ম আউটপুট

1
4

ব্যাখ্যা:

g/"/d    delete all lines that contain quotes
sort n   sort numerically
t.       duplicate the first line
t.       duplicate it again
2,$-1d   delete from line 2 to line (END-1)

একক সংখ্যার ইনপুটটির প্রান্তের কেসটি পরিচালনা করতে প্রথম লাইনটি দুবার নকল করা দরকার । এটি হ'ল কারণ শেষ কমান্ডটি কেবল দুটি লাইন পৌঁছালে অভিযোগ করবে যদি এটি পৌঁছে যায়, যেহেতু এটি শেষ হয় 2,1dযা পিছনের দিকের সীমা।


3

পার্ল 44 39 + 3 = 41 বাইট

@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"

-paপতাকা প্রয়োজন :

$ perl -pae'@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"' <<< '1 2 3 5 4'
1 5
$ perl -pae'@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"' <<< '1 2 3 4 "5"'
1 4

কয়েকটা বাইট কামিয়ে দেওয়ার জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ


কোন পার্ল সংস্করণ? আপনার দ্বিতীয় উদাহরণের জন্য আমি আলাদা ফলাফল
পেয়েছি

@ মান্যাটওয়ার্ক আপনি সঠিক, চিত্র আমি সরাতে পারবেন নাsort{$a-$b}grep...
andlrc

প্রয়োজনীয়তাটি উল্লেখ করে না যে আউটপুটটিকে উদাহরণগুলির মতো হ'ল বিন্যাস করতে হবে এবং এই কার্যক্রমে স্পষ্টভাবে বিন্যাসটি বিন্দু নয়। আমাদের মধ্যে অনেকে স্রেফ আমাদের পছন্দের ভাষায় হ্যান্ডিয়ার কী তা ব্যবহার করেন। পার্লে আমি এটি এটি করতে চাই : $_="@a[0,-1]".
manatwork

একটি অক্ষর খাটো ফিল্টারিং: grep!/"/
manatwork

এটি বলছে অ্যারে সংখ্যা এবং স্ট্রিং হবে। প্রশ্নের সমস্ত উদাহরণগুলি ডাবল-কোটেড স্ট্রিং সহ, তবে সেগুলি একক-উদ্ধৃত হতে পারে না এমন কিছুই আমি দেখছি না। আমি মনে করি এর !/\D/পরিবর্তে !/"/আরও একটি বাইটের জন্য প্রয়োজনীয় ।
msh210

3

জুলিয়া, 35 বাইট

x->extrema(filter(i->isa(i,Int),x))

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

extremaটিউপল হিসাবে অ্যারের ন্যূনতম এবং সর্বাধিক উপাদানগুলি পাওয়ার জন্য জুলিয়ার একটি অন্তর্নির্মিত ফাংশন রয়েছে । তবে অ্যারেতেও স্ট্রিং থাকতে পারে তাই আমাদের প্রথমে সেগুলি ফিল্টার করতে হবে। প্রতিটি উপাদান ব্যবহার করে পূর্ণসংখ্যা হয় কিনা তা পরীক্ষা করে আমরা এটি করতে পারি isa


3

জাপট, 23 বাইট

[V=Uf_bZÃn@X-Y})g Vw g]

এটি অনলাইন পরীক্ষা!

কিভাবে এটা কাজ করে

[V=Uf_  bZÃ n@  X-Y})g Vw g]
[V=UfZ{ZbZ} nXY{X-Y})g Vw g]

UfZ{ZbZ}   // Filter out the items Z in U where Z.b(Z) is falsy.
           // For numbers, this the original number, which is always non-0 (non-falsy).
           // For strings, this returns Z.indexOf(Z), which is always 0 (falsy).
nXY{X-Y}   // Sort by subtraction. Small items move to the front, large to the back.
V=         // Set variable V to the resulting array.
)g Vw g    // Take the first item in V, and the first in V.reverse().
[       ]  // Wrap them in an array so both are sent to output.

3

বাশ, 40 31 30 বাইট

sort -n|sed /\"/d|sed '1p;$p;d'

একটি লাইন পৃথকী তালিকা প্রয়োজন:

$ echo $'5\n4\n2\n9\n1\n"10"\n5' | sort -n|sed /\"/d|sed '1p;$p;d'
1
9

কয়েকটি বাইট শেভ করার জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ


sed '1p;$p;d'একটি বাইট সংরক্ষণ করে।
ডেনিস

3

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

@($args[0]|?{$_-is[int]}|sort)[0,-1]

@ গোরিককে ধন্যবাদ 17 বাইট সংরক্ষণ করা হয়েছে

OOOF ... পাওয়ারশেল সাধারণত কাস্টিং সহ বেশ দ্রুত এবং আলগা হয়ে খেলা করে, যা সাধারণত গল্ফ করার পক্ষে ভাল জিনিস তবে এখানে তা ব্যাথা করে।

আমাদের ইনপুট নেয় $args[0]এবং এটিকে একটি Where-Objectবিবৃতিতে ( ?পাই) দেয় যা কেবলমাত্র পূর্ণসংখ্যা নির্বাচন করবে এবং পাইপলাইন বরাবর তাদের পাস করবে, অন্য কিছু বাদ দিবে। যেহেতু আপনার জন্য ব্যাকগ্রাউন্ডে গতিশীল পুনরায় কাস্টিং ঘটে (যেমন, 1+"5"ফিরতে 6হবে পুরোপুরি বৈধ পাওয়ারশেল), তাই আমাদের অপারেটরটি ব্যবহার করা দরকার-is তাই ডেটা ধরণের মধ্যে পার্থক্য করার জন্য ।

সেখান থেকে আমরা সেই সংগ্রহটি পাইপ করি Sort-Object, যা পূর্ণসংখ্যাকে সবচেয়ে ছোট থেকে বৃহত্তমতে সারণি করে দেয়। বাইরেরটি ()প্রয়োজনীয় তাই আমরা প্রথম এবং শেষ উপাদানগুলি সহ উল্লেখ করতে পারি[0,-1] (যেমন, সবচেয়ে ছোট এবং বৃহত্তম) সহ উল্লেখ করতে পারি, তবে নোট করুন যে আমাদের কেবল বাহ্যিকের প্রয়োজন হবে যদি কেবলমাত্র একটি বস্তু থাকে (তবে ফলাফল হিসাবে অ্যারে হিসাবে @আউটপুট কাস্টিং করতে বাধ্য sortকরা হয়) ?অথবা শুধুমাত্র একটি বস্তু ইনপুট ছিল)।


1
কটাক্ষপাত -isটাইপ অপারেটর এখানে । আমার মনে হয় আপনি প্রতিস্থাপন করতে পারে .GetType().Name-eq"Int32"সঙ্গে -is[int]সংরক্ষণ 17 বাইট
goric

@ গোরিক সুপার দুর্দান্ত! বিশাল গল্ফ জন্য ধন্যবাদ!
অ্যাডমবর্কবর্ক

3

এমএটিএল , 23 বাইট

"@Y:tX%1)2\?x]N$htX<wX>

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

"       % implicitly input cell array. For loop that iterates on each cell
  @     %   push each cell
  Y:    %   cell's contents (either a number or a string)
  tX%   %   duplicate and push class. This will produce 'char'  or 'double'
  1)    %   get first letter: either 'c' or 'd'
  2\    %   is its ASCII code odd?
  ?     %   if so...
    x   %     delete (it's a string)
  ]     %   end if
  N$h   %   concatenate all stack into an array. This array will contain up to
        %   three numbers: minimum up to now, maximum up to now, new value (if any)
  tX<   %   duplicate. Push minimum
  wX>   %   swap. Push maximum.
        % implicitly end for
        % implicitly display stack contents

ওহ, আমার খারাপ: পি। সুন্দর উত্তর যদিও :)
আদনান

@ আদনান ধন্যবাদ! কিছুটা দীর্ঘ :-)
লুইস মেন্ডো

2

জাভাস্ক্রিপ্ট (ES5), 105 বাইট

function a(b){m=Math;b=b.filter(function(c){return c===+c});alert(m.min.apply(m,b)+','+m.max.apply(m,b))}

ব্যবহার: a([1,2,3,'4'])

শুধু চেষ্টা করছি :)

"Ungolfed":

function a(b){
  m=Math;
  b=b.filter(function(c){
    return c===+c
  });
  alert(m.min.apply(m,b) + ',' + m.max.apply(m,b))
}


2

পার্ল 6 , 25 বাইট

সুস্পষ্ট উত্তর এই যাইহোক কোড লাম্বদা হবে

*.grep(Int).minmax.bounds

এটি একটি সম্পূর্ণ প্রোগ্রাম হতে হবে

put get.words».&val.grep(Int).minmax.bounds

এই সম্পূর্ণ প্রোগ্রামটির ইনপুট হ'ল একটি স্থানকে পৃথক করা মানগুলির তালিকা


ব্যবহার

# give it a lexical name
my &code = *.grep(Int).minmax.bounds;

say code [1, 2, 3, 4, 5, 6, 7, 8];  # (1 8)
say code [5, 4, 2, 9, 1, 10, 5];    # (1 10)
say code [7, 8, 10, "Hello", 5, 5]; # (5 10)
say code [1, 2, 3, 4, "5"];         # (1 4)
say code [1];                       # (1 1)
say code ["1", "2", "3", "4", 5];   # (5 5)

say code []; # (Inf -Inf)

2

𝔼𝕊𝕄𝕚𝕟, 16 অক্ষর / 20 বাইট

[МƲ(ï⇔⒡≔=+$⸩,МƵï

Try it here (Firefox only).

খারাপ না...

ব্যাখ্যা

এটি সর্বাধিক এবং সর্বনিম্ন উভয় সমন্বিত একটি অ্যারে আউটপুট করে। (ï⇔⒡≔=+$⸩,মূলত ইনপুটটিতে সমস্ত স্ট্রিং ফিল্টার করে, МƲইনপুটটিতে সর্বাধিক পায় এবংМƵ পায় এবং সর্বনিম্ন হয় gets

কেবল একটি নোট: এটিই প্রথম চ্যালেঞ্জ যেখানে আমি ব্যবহার করতে পেলাম , যা মূলত ï⇔রূপান্তরিত হয় ï=ï



2

এপিএল (ডায়ালগ) , 13 বাইট

(⌊/,⌈/)⎕AV~⍨∊

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

 তালিকাভুক্ত করা (সমতল করা - এটি সমস্ত স্ট্রিংকে বড় তালিকার অক্ষরে পরিণত করে)

⎕AV~⍨ টমিক ভি ইটারের  সমস্ত অক্ষর মুছে ফেলুন (অক্ষর সেট - পাতার সংখ্যা)

() নিম্নলিখিত সূক্ষ্ম ফাংশন প্রয়োগ করুন:

⌊/ সর্বনিম্ন জুড়ে

, সংযুক্ত

⌈/ ম্যাক্সিমাস জুড়ে


2

জাভা (ওপেনজেডিকে 8) , 124 বাইট

a->{int s[]={0,0},t;for(Object i:a)try{t=(int)i;s[0]=s[0]<1|t<s[0]?t:s[0];s[1]=s[1]<t?t:s[1];}catch(Exception e){}return s;}

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

জাভা 8 লাম্বদা ফাংশন, ইনপুট হিসাবে অ্যারে নেয় এবং অ্যারে দেয় {min, max} । প্রতিযোগিতাবিহীন, কারণ ইনপুটটিকে একটি পূর্ণসংখ্যা অ্যারে হতে হবে।

স্থির এবং -1 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ


আপনি অবজেক্টগুলির একটি তালিকা নিয়ে এবং কোনও আইটেম পূর্ণসংখ্যা বা স্ট্রিং কিনা তা পরীক্ষা করে এটি প্রতিযোগিতামূলক করতে পারেন।
কেভিন ক্রুইজসেন 14

@ কেভিন ক্রুজসেন সম্পন্ন করেছেন, ধন্যবাদ
হাইপারনিউটারিনো

<iএখন পূর্ণসংখ্যা-castালাই ছাড়াই একটি ত্রুটি দেয়। এছাড়াও, আপনার প্রারম্ভিক কোডটি (এবং এটির পাশাপাশি minএটিও কাজ করে না) , কারণ এটি সর্বদা ফলাফল 0করে minএখানে একটি সম্ভাব্য স্থির। সম্পাদনা: ট্রাই-ক্যাচ মনে হয় এর চেয়ে 1 বাইট কমif(i instanceof Integer)
কেভিন ক্রুইজসেন 12

@ কেভিন ক্রুজসেন ওহ তা লক্ষ্য করেনি, ধন্যবাদ!
হাইপারনিউটারিনো

1

জल्फ, 20 বাইট

আমি সম্ভবত এটি গল্ফ করতে পারি ... আমাকে টাইপ-চেকিং খাটো সমাধানগুলি প্রয়োগ করতে হবে।

γ fxd='nF~tH0ͺZkγZKγ
 _fx                 filter the input
    d='nF~tH0        checking for number type
γ                    call that "γ"
             ͺ       pair
              ZkγZKγ  the min and max of the array
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.