সর্বাধিক সংখ্যা সহ বৃহত্তম সংখ্যা আউটপুট


37

ইতিবাচক দশমিক পূর্ণসংখ্যার একটি অবিশ্বাস্য তালিকা দেওয়া, কয়েকটি সংখ্যার সাথে সংখ্যার সেট থেকে বৃহত্তম সংখ্যা আউটপুট।

ইনপুট তালিকাটি কোনও নির্দিষ্ট ক্রমে থাকবে না এবং এতে পুনরাবৃত্ত মান থাকতে পারে।

উদাহরণ:

[1] -> 1
[9] -> 9
[1729] -> 1729
[1, 1] -> 1
[34, 3] -> 3
[38, 39] -> 39
[409, 12, 13] -> 13
[11, 11, 11, 1] -> 1
[11, 11, 11, 11] -> 11
[78, 99, 620, 1] -> 1
[78, 99, 620, 10] -> 99
[78, 99, 620, 100] -> 99
[1, 5, 9, 12, 63, 102] -> 9
[3451, 29820, 2983, 1223, 1337] -> 3451
[738, 2383, 281, 938, 212, 1010] -> 938

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


ইনপুট নম্বরগুলি পৃথক লাইনে থাকতে পারে?
শৈশুমারা

@seshoumara এটিকে যুক্তিসঙ্গত মনে হচ্ছে, হ্যাঁ।
ক্যালভিনের শখ

উত্তর:


13

পাইথ, 7 3 6 বাইট

eS.ml`

পরীক্ষা স্যুট

ব্যাখ্যা:

e      Still grab the last element
 S      Still sort
  .ml`   But prefilter the list for those with the (m)inimum length.

7 বাইট সমাধান:

eSh.gl`

পরীক্ষা স্যুট

ব্যাখ্যা:

   .g   Group items in (implicit) input by:
     l  The length of
      ` their representation
  h     Get those with the shortest length
 S      Sort the resulting list
e       and grab the last (i.e. largest) element

6

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

-6 বাইটস @ ডেনিসকে ধন্যবাদ ( minপরিবর্তে ব্যবহার করুন sorted)

lambda l:min(l,key=lambda x:(len(`x`),-x))

সমস্ত পরীক্ষার কেস আদর্শে

তালিকার সর্বনিম্ন নিন (দৈর্ঘ্য, মূল্য)


1
minপরিবর্তে কাজ করা উচিত sorted
ডেনিস

@ ডেনিস, ওহ জিজ - ধন্যবাদ! সম্ভবত পোস্ট করার পক্ষে যথেষ্ট আলাদা yourself
জনাথন অ্যালান

sorted()[0]জন্য অদলবদল min? আমি বিবেচনা করি যে আপনার মূল কোডটির একটি তুচ্ছ পরিবর্তন mod
ডেনিস

len(`x`)+1./xএকই দৈর্ঘ্যের জন্য এছাড়াও আছে । খুব খারাপ আপনার দরকার 1.
xnor

আচ্ছা, আমি যেটা নিয়ে এসেছি তার চেয়ে ছোট এটি। ভাল করেছ!
mbomb007

6

জেলি , 7 বাইট

DL,NµÞḢ

এটি ট্রাইআইটঅনলাইনে
পরীক্ষা করুন বা সমস্ত পরীক্ষার কেস ট্রাইআইটঅনলাইনেও দেখুন

কিভাবে?

DL,NµÞḢ - Main link takes one argument, the list, e.g. [738, 2383, 281, 938, 212, 1010]
D       - convert to decimal, e.g. [[7,3,8],[2,3,8,3],[2,8,1],[9,3,8],[2,1,2],[1,0,1,0]]
 L      - length, e.g. [3,4,3,3,3,4]
   N    - negate, e.g [-738, -2383, -281, -938, -212, -1010]
  ,     - pair, e.g. [[3,-738],[4,-2383],[3,-281],[3,-938],[3,-212],[4,-1010]]
    µ   - make a monadic chain
     Þ  - sort the input by that monadic function, e.g [938,738,281,212,2383,1010]
          (the lists in the example are not created, but we sort over the values shown)
      Ḣ - pop and return the first element, e.g. 938

1
সাজানোর দুর্দান্ত ব্যবহার!
মাইল

@ মাইলগুলি আপনার পথটি এখনও অনুপ্রাণিত হয়েছিল :)
জোনাথন অ্যালান




4

রেটিনা ,24 16 বাইট

হে ^ `
হে $ # `
$ ২.0
G1`

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

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

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

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


যদি আপনি ইনপুট লাইনফিড-বিচ্ছিন্ন করে থাকেন তবে আপনি উভয় বাছাইকরণের পর্যায় থেকে রেজিটাকে বাদ দিতে পারেন এবং তারপরে G1`শেষ পর্যায়ে ব্যবহার করতে পারেন ।
মার্টিন এন্ডার

এছাড়াও, প্রথম পর্যায়ে প্রয়োজন হয় না #। আপনি কেবলমাত্র প্রদত্ত পূর্ণসংখ্যার দৈর্ঘ্যের জন্য আপেক্ষিক ক্রমের বিষয়ে যত্নশীল হন এবং এক দৈর্ঘ্যের মধ্যে লিক্সোগ্রাফিক সংখ্যার বাছাই সঠিক।
মার্টিন এন্ডার

টুইটারে আমি আপনার উভয় টিপস যোগ করেছি। \w+বাছাইয়ের জন্য আমার ডিফল্ট হিসাবে পরামর্শ দেওয়া উচিত ছিল , এইভাবে পরীক্ষার স্যুটগুলি তৈরি করতে আমার যতটা সংগ্রাম করার দরকার
পড়েনি

এখানে আরও 16 টি দেওয়া আছে, যদি এটি আপনাকে আরও গল্ফ করার জন্য কোনও ধারণা দেয়: retina.tryitonline.net/…
মার্টিন

4

গণিত, 33 31 বাইট

Max@MinimalBy[#,IntegerLength]&

মিনিমালবাই মূল ইনপুট তালিকার সমস্ত উপাদানকে সবচেয়ে ছোট স্কোর অনুসারে বাছাই করে IntegerLength, অর্থাত্ সংখ্যার ক্ষুদ্রতম সংখ্যার সাথে নির্বাচন করে; এবং তারপরে সর্বাধিক একটিকে আউটপুট দেয়।

আমার জন্য 2 বাইট সন্ধান এবং তারপরে মার্টিন ইন্ডারকে ধন্যবাদ জানাই :)


4

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

*.min:{.chars,-$_}

ব্যাখ্যা:

*\        # Whatever lambda
.min:     # find the minimum using

{         # bare block lambda with implicit parameter 「$_」

  .chars, # number of characters first ( implicit method call on 「$_」 )
  -$_     # then negative of the value in case of a tie
}

ব্যবহার:

say [738, 2383, 281, 938, 212, 1010].&( *.min:{.chars,-$_} ); # 938

my &code = *.min:{.chars,-$_}

say code [78, 99, 620, 10]; # 99

3

জেলি , 8 বাইট

DL€İMị¹Ṁ

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

ব্যাখ্যা

DL€İMị¹Ṁ  Input: list A
D         Convert each integer to a list of base 10 digits
 L€       Get the length of each list (number of digits of each)
   İ      Take the reciprocal of each
    M     Get the indices of the maximal values
      ¹   Get A
     ị    Select the values at those indices from A
       Ṁ  Find the maximum and return

এই 8 বাইট কেমন? এই চরিত্রগুলি সমস্তই কি ASCII- এ ফিট করে?
ফেডেরিকো পোলোনি

1
@ ফেডেরিকো পোলোনি হ্যাঁ, তারা ফিট করে , যদিও অন্য কোডেজে রয়েছে।
এরিক আউটগল্ফার

3

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

l=>l.sort((a,b)=>(a+l).length-(b+l).length||b-a)[0]

পরীক্ষা

f=l=>l.sort((a,b)=>(a+l).length-(b+l).length||b-a)[0]

;[
 [[1], 1]
,[[9], 9]
,[[1729], 1729]
,[[1, 1], 1]
,[[34, 3], 3]
,[[38, 39], 39]
,[[409, 12, 13], 13]
,[[11, 11, 11, 1], 1]
,[[11, 11, 11, 11], 11]
,[[78, 99, 620, 1], 1]
,[[78, 99, 620, 10], 99]
,[[78, 99, 620, 100], 99]
,[[1, 5, 9, 12, 63, 102], 9]
,[[3451, 29820, 2983, 1223, 1337], 3451]
,[[738, 2383, 281, 938, 212, 1010], 938]
].forEach(([l,x])=>{
  var r=f(l)
  console.log(r==x?'OK':'KO',l+' -> '+r)
})  


3

জে, 21 14 বাইট

মাইল এবং (অপ্রত্যক্ষভাবে) জনাথনকে 7 বাইট সংরক্ষণ করা!

{.@/:#@":"0,.-

এটি একটি চার চেইন:

{.@/: (#@":"0 ,. -)

আসুন ইনপুট উপর দিয়ে চলুন 10 27 232 1000। অভ্যন্তরের কাঁটাচামচটিতে তিনটি টাইন থাকে। #@":"0আকারগুলি গণনা করে, ,.প্রতিটি প্রত্যাশাকে এর উপেক্ষিত ( -) সদস্যের সাথে মিলিত করে । ইনপুট জন্য 10 27 232 1000, আমরা এই বাকি আছে:

   (#@":"0 ,. -) 10 27 232 1000
2   _10
2   _27
3  _232
4 _1000

এখন, আমরা {.@/:বাইরের টাইন হিসাবে আছে । এটি {.ডায়াডিক সাজ্ট ( ) এর উপরে একাকী প্রথম ( /:)। এটি হ'ল আমরা ডায়াডিকের ফলাফলের প্রথম উপাদানটি গ্রহণ করব /:। এটি তার বাম যুক্তি অনুসারে তার ডান যুক্তিটি সাজায়, যা আমাদের ইনপুট দেওয়ার জন্য দেয়:

   (/: #@":"0 ,. -) 10 27 232 1000
27 10 232 1000

তারপরে, {.ব্যবহারটি আমাদের তালিকার প্রথম উপাদানটি দেয় এবং আমাদের কাজ শেষ হয়:

   ({.@/: #@":"0 ,. -) 10 27 232 1000
27

পুরনো সংস্করণ

>./@(#~]=<./@])#@":"0

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

   size =: #@":"0
   max =: >./
   min =: <./
   over =: @
   right =: ]
   left =: [
   selectMin =: #~ right = min over right

   f =: max over selectMin size
   f 3 4 5
5
   f 3 4 53
4
   f 343 42 53
53

এটি কীভাবে কাজ করে তা এখানে।

>./@(#~ ] = <./@]) #@":"0

এটি একটি মোনাডিক ট্রেন, তবে এই অংশটি হুক। ক্রিয়াটি >./@(#~ ] = <./@])বাম আর্গুমেন্টকে মূল শৃঙ্খলে এবং আকারগুলির ইনপুট হিসাবে ডাকা হয়, ডান আর্গুমেন্ট হিসাবে হিসাবে সংজ্ঞায়িত করা হয় #@":"0। এটি দৈর্ঘ্য ( #) ওভার ( @) ডিফল্ট ফর্ম্যাট ( ":) হিসাবে গণনা করা হয়, যা সংখ্যার স্ট্রিংফিকেশন, যা ইনপুট ( "0) এর সদস্যদের 0-কোষের জন্য প্রয়োগ করা হয় ।

আসুন উদাহরণ ইনপুট উপর দিয়ে চলুন 409 12 13

   (#@":"0) 409 12 13
3 2 2

এখন অভ্যন্তরীণ ক্রিয়া জন্য >./@(#~ ] = <./@]),। দেখে মনে হচ্ছে >./@(...), যা কার্যকরভাবে এর ভিতরে থাকা ( >./) এর সর্বাধিক মান ( ) বোঝায় । অভ্যন্তরীণ হিসাবে, এটি একটি পাঁচ ট্রেন, এই পাঁচটি ট্রেনের সমতুল্য:@(...)

[ #~ ] = <./@]

[মূল আর্গুমেন্ট ]বোঝায় , এবং আকার অ্যারে বোঝায়; 409 12 13এবং 3 2 2যথাক্রমে এই উদাহরণে। ডান টাইন, এই ক্ষেত্রে <./@]ন্যূনতম আকারের গণনা করে 2] = <./@]এক্ষেত্রে সর্বনিম্নের সমান মানের বুলিয়ান অ্যারে 0 1 1। অবশেষে, [ #~ ...ডান-আর্গুমেন্ট মাস্ক অনুসারে বাম আর্গুমেন্ট থেকে মানগুলি নেয়। এর অর্থ হ'ল এর সাথে সম্পর্কিত উপাদানগুলি 0বাদ এবং 1ধরে রাখা হয়। সুতরাং আমরা বাকি আছে 12 13। পরিশেষে, উপরের অনুসারে সর্বোচ্চটি নেওয়া হয়, আমাদের সঠিক ফলাফল দেয় 13এবং আমরা সম্পন্ন হয়ে যাই।


কিছু বদলানো প্লাস হুক একটি বাইট সংরক্ষণ করতে পারে >./@#~[:(=<./)#@":"0। আমি মনে করি সেভ করার জন্য আরও কিছু থাকতে পারে
মাইল 2

@ মাইলস এক্সডি আমি কেবল ব্যাখ্যাটি লেখা শেষ করেছি। আহ্ ভাল, আমাকে এই সৌন্দর্যের দিকে একবার নজর দেওয়া যাক ...
কনর ও'ব্রায়েন

জোনাথন আরও একটি ভাল পদ্ধতি খুঁজে পেলেন। যদি আমরা এটিকে জে রূপান্তর করি {.@/:#@":"0,.-তবে এর 14 বাইট তবে
মাইল

@ মাইল "তালিকা হিসাবে আকৃতি"? তুমি বলতে চাচ্ছো 400 12 13?
কনর ও'ব্রায়েন

2

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

var solution =

a=>a.map(n=>(l=`${n}`.length)>a?l>a+1|n<r?0:r=n:(a=l-1,r=n))|r

;document.write('<pre>' + `
[1] -> 1
[9] -> 9
[1729] -> 1729
[1, 1] -> 1
[34, 3] -> 3
[38, 39] -> 39
[409, 12, 13] -> 13
[11, 11, 11, 1] -> 1
[11, 11, 11, 11] -> 11
[78, 99, 620, 1] -> 1
[78, 99, 620, 10] -> 99
[78, 99, 620, 100] -> 99
[1, 5, 9, 12, 63, 102] -> 9
[3451, 29820, 2983, 1223, 1337] -> 3451
[738, 2383, 281, 938, 212, 1010] -> 938
`.split('\n').slice(1, -1).map(c =>
  c + ', result: ' + solution(eval(c.slice(0, c.indexOf('->'))))
).join('\n'))


2

ডিসি, 54 বাইট

?dZsL0sN[dsNdZsL]su[dlN<u]sU[dZlL=UdZlL>ukz0<R]dsRxlNp

ব্যাখ্যা:

?dZsL0sN                  # read input, initialize L (length) and N (number)
[dsNdZsL]su               # macro (function) 'u' updates the values of L and N
[dlN<u]sU                 # macro 'U' calls 'u' if N < curr_nr
[dZlL=U dZlL>ukz0<R]dsR   # macro 'R' is a loop that calls 'U' if L == curr_nr_len
                          #or 'u' if L > curr_nr_len
xlNp                      # the main: call 'R' and print N at the end

চালনার উদাহরণ: 'ইনপুট.টিএসটিএস্ট' এ প্রশ্নের বিবৃতিতে সমস্ত পরীক্ষার কেস রয়েছে

while read list;do echo "$list -> "$(dc -f program.dc <<< $list);done < input.txt

আউটপুট:

1 -> 1
9 -> 9
1729 -> 1729
1 1 -> 1
34 3 -> 3
38 39 -> 39
409 12 13 -> 13
11 11 11 1 -> 1
11 11 11 11 -> 11
78 99 620 1 -> 1
78 99 620 10 -> 99
78 99 620 100 -> 99
1 5 9 12 63 102 -> 9
3451 29820 2983 1223 1337 -> 3451
738 2383 281 938 212 1010 -> 938

2

জাভা 7, 112 104 বাইট

int c(int[]a){int i=a[0],j;for(int b:a)i=(j=(i+"").length()-(b+"").length())>0?b:b>i&j==0?b:i;return i;}

@ বারটেক্স 2 এক্সকে একাধিক বাইট সংরক্ষণ করার জন্য বিভিন্ন পদ্ধতি ।

অবহেলিত ও পরীক্ষার কেস:

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

class M{
  static int c(int[] a){
    int i = a[0],
        j;
    for(int b : a){
      i = (j = (i+"").length() - (b+"").length()) > 0
           ? b
           : b > i & j == 0
              ? b
              : i;
    }
    return i;
  }

  public static void main(String[] a){
    System.out.println(c(new int[]{ 1 }));
    System.out.println(c(new int[]{ 9 }));
    System.out.println(c(new int[]{ 1729 }));
    System.out.println(c(new int[]{ 1, 1 }));
    System.out.println(c(new int[]{ 34, 3 }));
    System.out.println(c(new int[]{ 409, 12, 13 }));
    System.out.println(c(new int[]{ 11, 11, 11, 1 }));
    System.out.println(c(new int[]{ 11, 11, 11, 11 }));
    System.out.println(c(new int[]{ 78, 99, 620, 1 }));
    System.out.println(c(new int[]{ 78, 99, 620, 100 }));
    System.out.println(c(new int[]{ 1, 5, 9, 12, 63, 102 }));
    System.out.println(c(new int[]{ 3451, 29820, 2983, 1223, 1337 }));
    System.out.println(c(new int[]{ 738, 2383, 281, 938, 212, 1010 }));
  }
}

আউটপুট:

1
9
1729
1
3
13
1
11
1
99
9
3451
938

1
সংক্ষিপ্ত সংস্করণ: int সি (অন্তঃ [] ক) i ইনট আই = আ [০], জে; এর জন্য (ইনট বি: ক) আই = (জে = (আই + "")। দৈর্ঘ্য () - (বি + "")। দৈর্ঘ্য ())> 0? b: b> i & j == 0? b: i; ফেরত আমি;
bar

@ বারটেক্স ২ এক্স ধন্যবাদ, আমি এটি সম্পাদনা করেছি।
কেভিন ক্রুইজসেন 21

2

bash, awk, 53 বাইট সাজান

set `awk '{print $0,length($0)}'|sort -rnk2n`;echo $1

স্টিডিনের ইনপুট পড়ুন, প্রতি লাইনে একটি মান

বাশ এবং সাজান, 58 57 বাইট

set `sort -n`;while((${#2}==${#1}));do shift;done;echo $1


সর্বশেষ নমুনার জন্য কাজ করে না 938 এর পরিবর্তে 2383 দিয়েছে
আরচেমার

@ আর্চামার দুঃখিত দুঃখিত আমি প্রশ্নটি ভুলভাবে পড়েছি, এটি এখনই সংশোধন করা হয়েছে
এমমানুয়েল

আপনি whileএবং এর মধ্যে স্থান সরাতে পারেন ((
শৈশুমারা

1

জাভাস্ক্রিপ্ট ES6, 80 77 70 বাইট

a=>Math.max(...a.filter(l=>l.length==Math.min(...a.map(i=>i.length))))

আমি আশা করি আমি সঠিক দিকে যাচ্ছি ...


আপনি কি সাথে প্রতিস্থাপন a.map(i=>i.length).sort((a,b)=>a-b)[0]করতে পারেন Math.min(...a.map(i=>i.length))?
ব্যবহারকারী81655

@ ব্যবহারকারী 81655 হ্যাঁ, আমি পারি can আমি ভেবেছিলাম যে আমি সম্পাদনা করেছি তবে দৃশ্যত আমি তা করি নি
ডাউনগোট

আপনি সর্বনিম্ন অবহেলা করার চেষ্টাও করতে পারেন যাতে আপনি পুনরায় ব্যবহার করতে পারেন Math.max: a=>(m=Math.max)(...a.filter(l=>l.length==-m(...a.map(i=>-i.length))))যদিও এটি কেবল 1 বাইট সংরক্ষণ করবে বলে মনে হচ্ছে।
ব্যবহারকারী 81655

অন্য একটি বাইটের জন্য filtermap0a=>(m=Math.max)(...a.map(l=>l.length+m(...a.map(i=>-i.length))?0:l))
এমনটি



1

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

l=>l.sort((a,b)=>(s=a=>1/a+`${a}`.length)(a)-s(b))[0]

রেকর্ডের জন্য, আমার পূর্ববর্তী সংস্করণটি আরও বেশি গণিতমুখী ছিল তবে 1 বাইট আরও বড়:

l=>l.sort((a,b)=>(s=a=>1/a-~Math.log10(a))(a)-s(b))[0]

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

let f =
l=>l.sort((a,b)=>(s=a=>1/a+`${a}`.length)(a)-s(b))[0]

console.log(f([1]));                              //  -> 1
console.log(f([9]));                              //  -> 9
console.log(f([1729]));                           //  -> 1729
console.log(f([1, 1]));                           //  -> 1
console.log(f([34, 3]));                          //  -> 3
console.log(f([38, 39]));                         //  -> 39
console.log(f([409, 12, 13]));                    //  -> 13
console.log(f([11, 11, 11, 1]));                  //  -> 1
console.log(f([11, 11, 11, 11]));                 //  -> 11
console.log(f([78, 99, 620, 1]));                 //  -> 1
console.log(f([78, 99, 620, 10]));                //  -> 99
console.log(f([78, 99, 620, 100]));               //  -> 99
console.log(f([1, 5, 9, 12, 63, 102]));           //  -> 9
console.log(f([3451, 29820, 2983, 1223, 1337]));  //  -> 3451
console.log(f([738, 2383, 281, 938, 212, 1010])); //  -> 938


1

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

tV48\&XS0))

ইনপুট একটি কলাম ভেক্টর ( ;বিভাজক হিসাবে ব্যবহার করে ) যেমন

[78; 99; 620; 100]

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

ব্যাখ্যা

[78; 99; 620; 100]উদাহরণ হিসাবে ইনপুট ব্যবহার করা যাক ।

t      % Input column vector implicitly. Duplicate
       %   STACK: [78; 99; 620; 100], [78; 99; 620; 100]
V      % Convert to string. Each number is a row, left-padded with spaces
       %   STACK: [78; 99; 620; 100], [' 78'; ' 99'; '620'; '100']
48\    % Modulo 48. This transforms each digit into the corresponding number,
       % and space into 32. Thus space becomes the largest "digit"
       %   STACK: [78; 99; 620; 100], [32 7 8; 32 9 9; 6 2 0; 1 0 0]
&XS    % Sort rows in lexicographical order, and push the indices of the sorting
       %   STACK: [78; 99; 620; 100], [4; 3; 1; 2]
0)     % Get last value
       %   STACK: [78; 99; 620; 100], 2
)      % Index
       %   STACK: 99
       % Implicitly display

1
আপনার ব্যাখ্যায় স্ট্যাকের অবস্থা দেখে ভাল লাগল!
flawr

1

পার্ল, 38 37 বাইট

এর জন্য +1 অন্তর্ভুক্ত -a

এসটিডিনে ইনপুট দিন:

perl -M5.010 maxmin.pl <<< "3451 29820 2983 1223 1337"

maxmin.pl:

#!/usr/bin/perl -a
\$G[99-y///c][$_]for@F;say$#{$G[-1]}

বৃহত্তম সংখ্যায় মেমরি রৈখিক ব্যবহার করে, তাই খুব বেশি সংখ্যক এ চেষ্টা করবেন না। এই ত্রুটিবিহীন একটি সমাধান 38 বাইট:

#!/usr/bin/perl -p
$.++until$\=(sort/\b\S{$.}\b/g)[-1]}{

এগুলি সমস্ত খুব বিশ্রী এবং একেবারে অনুকূল মনে হয় না ...


1

আর, 72 41 36 বাইট

একটি নতুন পদ্ধতির সাথে ফাংশনটি আবার লিখুন। গল্ফড 5 বাইট @ বাউন্সিলের পরামর্শের জন্য ধন্যবাদ thanks

n=nchar(i<-scan());max(i[n==min(n)])

ব্যাখ্যা:

        i<-scan()       # Read input from stdin
n=nchar(         );     # Count the number of characters in each number in i
max(             )      # Return the maximum of the set where
    i[n==min(n)]        # the number of characters is the minimum number of characters.

function(i){while(1){if(length(o<-i[nchar(i)==T]))return(max(o));T=T+1}}

ইন্ডেন্টযুক্ত / ব্যাখ্যা:

function(i){               # Take an input i
  while(1){                # Do the following continuously:
    if(length(
        o<-i[nchar(i)==T]) # Define o to be the subset of i with numbers of length T,
      )                    # where T is 1 (a built-in!).
                           # We take the length of this subset (its size), and then pass
                           # it to if(). Thanks to weak typing, this numeric is converted
                           # to a logical value. When this occurs, zero evaluates to FALSE
                           # and any non-zero number evaluates to TRUE. Therefore, the if()
                           # is TRUE iff the subset is not empty.
      return(max(o));      # If it's true, then we just return the largest element of the
                           # subset, breaking out of our loop.
    T=T+1                  # Otherwise, increment our counter and continue.
  }
}


1
সংজ্ঞা না দিয়ে 4 বাইট সংরক্ষণ করুন function:i=scan();n=nchar(i);max(i[n==min(n)])
বুন্সিবল

@ বাউন্সিবল ধন্যবাদ! এবং আরও 1 বাইট দ্বারা সংরক্ষণ করা হয়েছে n=nchar(i<-scan())
rturnbull

1

বাশ + কোর্টিলস, 58 বাইট

d=`sort -n`;egrep ^.{`sed q<<<"$d"|wc -L`}$<<<"$d"|tail -1

ইনপুট ফর্ম্যাট প্রতি লাইন এক মান। গল্ফিং পরামর্শ স্বাগত জানানো হয়।

ব্যাখ্যা:

d=`sort -n`                             #save the list in ascending numerical order
egrep ^.{                    }$<<<"$d"  #print only list lines having as many chars
         `sed q<<<"$d"|wc -L`                 #as the first sorted line does
|tail -1                                #and then get the last one (the answer)

+1 আপনাকে ধন্যবাদ এখন আমি জানি যে sed q=head -1
এমমানুয়েল



0

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

lambda a:sorted(sorted(a),key=lambda x:-len(str(x)))[-1]

একটি ল্যাম্বডায় একটি ল্যাম্বডা ব্যবহার করে!

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

s=lambda a:sorted(sorted(a),key=lambda x:-len(`x`))[-1]

একই তবে ব্যাকটিক্স সহ


0

পিপ , 11 বাইট

(SNgSK-#_v)

কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়। এটি অনলাইন চেষ্টা করুন!

প্রথম সময় ব্যবহার Sort- Kনেত্রবিশিষ্ট অপারেটর! পাইথনের মতো sorted(), এটি এমন একটি ফাংশন নেয় যা পুনরাবৃত্তযোগ্য প্রতিটি আইটেমের জন্য প্রয়োগ করা হয় এবং ফলাফলটি একটি বাছাই কী হিসাবে ব্যবহৃত হয়। এই প্রোগ্রামটি কীভাবে কাজ করে তা এখানে:

 SNg         List of cmdline args, sorted numerically in increasing order
    SK       Sort with key function...
      -#_    ... negative length(x), thus putting the shortest numbers at the end but not
               affecting the relative ordering among numbers with the same length
(        v)  Get the last element (index -1) and auto-print

0

Clojure, 63 বাইট

(reduce #(if(=(quot %1 10)(quot %2 10))(max %1 %2) %1)(sort x)) 

যেমন:

(reduce #(if(=(quot %1 10)(quot %2 10))(max %1 %2) %1)(sort[3 7 121 11 8 2 10 9]))
=> 9

যদিও আমি নিশ্চিত যে এটি আরও ছোট করার কোনও উপায় আছে।


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