একটানা সংখ্যার দীর্ঘতম রান সন্ধান করুন


15

সাধারণ চ্যালেঞ্জ: ইতিবাচক পূর্ণসংখ্যার একটি সিরিজ দেওয়া, এটির সংখ্যার মধ্যে থাকা সংখ্যাটি টানা অঙ্কের দীর্ঘতম রানটি সন্ধান করুন। শিল্প খাত? সম্ভাব্য মানগুলি ( 0123456789) এর চারপাশে মোড়ানো এবং পিছনের দিকে চালানোর জন্য রানগুলিতে অঙ্কগুলির জন্য এটি অনুমোদিত । সুতরাং উভয় 2345,89012 এবং 5432109পরপর সংখ্যা (কিন্তু বৈধ রান হয় 3456765না 321090123হিসাবে চালায় একই সবসময় হতে হবে যদিও 3456765দুই রান হিসেবে বিবেচনা করা যেতে পারে: 34567এবং 765)। সম্পর্কের ক্ষেত্রে প্রথমটি ফেরত দিন।

পরীক্ষার কেস:

Input:  [3274569283, 387652323, 23987654323648, 2345687913624]
Output: 23987654323648 
        (The run is 98765432; run length: 8)

Input:  [123012363672023, 098761766325432, 15890123456765]
Output: 15890123456765
        (The run is 8901234567; run length: 10)

Input:  [43, 19, 456]
Output: 456

Input:  [5, 9, 0]
Output: 5

Input:  [71232107, 7012347]
Output: 7012347

Input:  [1234, 32109876]
Output: 32109876

Input:  [9090, 123]
Output: 123

মন্তব্য:

  • ইনপুটটিতে কমপক্ষে একটি নম্বর থাকবে।
  • ইনপুট সংখ্যায় নেতৃস্থানীয় জিরো থাকতে পারে।
  • ইনপুট এবং আউটপুট হতে পারে কোনও যুক্তিসঙ্গত বিন্যাসে । সুতরাং ইনপুট নম্বরগুলি স্ট্রিং, অঙ্ক / অক্ষরের তালিকা হিসাবে নেওয়া যেতে পারে ...
  • আউটপুটটিতে পিছনে এবং / অথবা নেতৃস্থানীয় সাদা স্থান এবং নিউলাইনগুলি মুদ্রিত হওয়া অবধি থাকতে পারে।
  • এটি , তাই প্রতিটি ভাষার পক্ষে সংক্ষিপ্ততম প্রোগ্রাম / ফাংশন জিতে যেতে পারে!


কেবল নিশ্চিত হতেই, তালিকাটি নিজেই গুটিয়ে রাখতে পারে না, তাই না? (আমি তালিকা মোড়ক হিসাবে অঙ্কের মোড়কে ভুল বুঝেছি) তাই হ্যাঁ, এর চেয়ে [7,8,1,6]সর্বাধিক রান রয়েছে ? [7,8][6,7,8]
— জোনাথন অ্যালান

1
@ জোনাথান অ্যালান হ্যাঁ, সর্বাধিক রান 78সেই ক্ষেত্রে।
— চার্লি

উত্তর:


4

জেলি , 18 বাইট

I9,-;N¤yŒgỊS€ṀµÐṀḢ

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

নেতৃস্থানীয় শূন্যগুলি সংরক্ষণের জন্য ডিজিটের তালিকা হিসাবে নেয় এবং ফেরত দেয়।


খনি অনুরূপ সমস্যা - চেষ্টা এই আকার আউট (আমি বিশ্বাস করি এটা ভুল ফলাফলের ফেরৎ - আমি এটা প্রস্তাব করেছি একটি পরীক্ষা ক্ষেত্রে ঠিক নিশ্চিত হতে)।
— জোনাথন অ্যালান

@ জোনাথান অ্যালান আমার মনে হয় এটাই সঠিক ফলাফল? (সেখানে 3210প্রথম সংখ্যা
— বিটিডব্লিউতে রয়েছে

আহ উফ, এই , দুঃখিত!
— জোনাথন অ্যালান

@ জোনাথন অ্যালান ওহ, আমি আপনাকে বোঝাতে চাইছি ... এটি সম্ভবত Aসেখানে থাকার কারণে ।
— এরিক আউটগল্ফার

@ জোনাথান অ্যালান ফিক্সড
— এরিক আউটগল্ফার

3

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

অঙ্কের তালিকাগুলির তালিকা হিসাবে ইনপুট নেয়। সেরাটি প্রদান করে।

a=>a.map(s=>s.map(n=>(i=(d=(x-(x=n)+11)%10)&&d-2?0:d-p?(p=d,1):i+1)>j&&(r=s,j=i),p=x=-10),j=-1)&&r

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


3

জেলি ,  18 16  15 বাইট

I%⁵Œg%8ċ€1ṀµÐṀḢ

একটি মোনাডিক লিঙ্ক অঙ্কের তালিকাগুলির একটি তালিকা গ্রহণ করে এবং বর্ণিত হিসাবে সর্বাধিক রান সহ বামতম একটিকে ফিরিয়ে দেয়।

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা স্যুট দেখুন (আই / ও দেখতে যেমন তৈরি হয় তেমন প্রক্রিয়াকরণ সহ) দেখুন।

কিভাবে?

I%⁵Œg%8ċ€1ṀµÐṀḢ - Link: list of lists of integers (digits) from [0-9]
           µÐṀ  - keep elements for which the link to the left is maximal:
I               -   incremental differences (i.e. [a2-a1, a3-a2, ...])
  ⁵             -   literal 10
 %              -   modulo by (i.e. [(a2-a1)%10, (a3-a2)%10, ...])
                -     this equates deltas of -9 and -1 with 1 and 9 respectively
   Œg           -   group runs of equal elements
     %8         -   modulo by 8; vectorised (9s become 1s, others unaffected)
       ċ€1      -   count number of 1s in €ach group
          Ṁ     -   maximum
              Ḣ - head (get the first one of those that were maximal)

V€এটি সম্পর্কে নিশ্চিত নয়, আপনাকে নেতৃস্থানীয় শূন্যগুলি গণনা করতে হতে পারে।
— এরিক দি আউটগলফার

এটি স্টিং ইনপুটটির শীর্ষস্থানীয় শূন্যগুলি গণনা করে, তবে আমি দেখতে পাচ্ছি আমরা অঙ্কের তালিকাগুলির তালিকা নিতে পারি ...
— জোনাথন অ্যালান

আমি মনে করি আপনি নেতৃস্থানীয় শূন্যকে সমর্থন করবেন বলে মনে করা হচ্ছে।
— এরিক দি আউটগল্ফার

আমি নেতৃস্থানীয় শূন্যগুলি সমর্থন করি
— জোনাথন অ্যালান

1
আমি "এটি গণনা করি না ..." হিসাবে পড়েছি
— এরিক দ্য আউটগল্ফার

2

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

অঙ্কের তালিকার একটি তালিকা নেয় a; এর একটি তালিকাকে ফেরত দেয়।

lambda a:max(a,key=lambda l:len(max(re.findall('1+|9*',`[(x-y)%10for x,y in zip(l,l[1:])]`[1::3]),key=len)))
import re

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


ইনপুট ব্যর্থ [[9,0,9,0],[1,2,3]]।
— জাগারব

@ জগারব উফ, আপনি ঠিক বলেছেন আমি যাই একটি পুরানো সংস্করণ ফিরে।
— লিন

1

হুশ , 20 বাইট

←Ö¤<(→Of€1†%8gẊo%10-

সংখ্যার তালিকার একটি তালিকা নেয় এবং ফেরত দেয়। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

←Ö¤<(→Of€1†%8gẊo%10-  Implicit input.
←                     Return first element of
 Ö                    the input sorted in a stable manner
   <                  in descending order
  ¤ (                 with respect to the following function:
                       Argument is list of digits, say [5,2,1,0,9,1,0].
                   -   Differences
               o%10    mod 10
              Ẋ        of all adjacent pairs: [7,9,9,9,2,1]
             g         Group adjacent equal elements: [[7],[9,9,9],[2],[1]]
          †%8          Vectorized mod 8: [[7],[1,1,1],[2],[1]]
       f€1             Keep those runs where 1 occurs: [[1,1,1],[1]]
      O                Sort in ascending order: [[1],[1,1,1]]
     →                 Take last element (gives [] on empty list): [1,1,1]
                       This is a list of 1s with length one less than
                       the longest run of consecutive digits.

1

ম্যাটল্যাব, ১৩০ বাইট

অ্যারে ইনপুট নিন, কলাম পার্থক্যের অ্যারে [X (2) -X (1), ..., এক্স (এন) -এক্স (এন -1)], অ্যারেতে সর্বাধিক ঘন মানটি (1 আরোহণের ক্রম - 1 অন্যথায়), সর্বাধিক ঘন মানের সাথে সূচকটি পান বা -9 সবচেয়ে ঘন ঘন মানের দ্বারা গুণিত হয় (-9 আরোহী ক্রমে ঘটে, 9 অন্যথায়), পরপর সূচকগুলি (যেমন যার পার্থক্য 1 সমান) সন্ধান করুন এবং যোগফলটি যোগ করুন দেরী হয়েছে, কারণ দয়া করে। সবচেয়ে বড় আউটপুট।

a=input('')
t=[]
for i=1:numel(a)
b=diff(num2str(a(i))-'0')
c=mode(b)
t=[t sum(diff(find(b==c|b==-9*c))==1)]
end
[t,I]=max(t),a(I)

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

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