পূর্ণসংখ্যার ঘোরানো অবস্থান


20

চ্যালেঞ্জ:

ইনপুট:

ধনাত্মক পূর্ণসংখ্যার একটি সাজানো তালিকা।

আউটপুট:

প্রতিটি পূর্ণসংখ্যার অঙ্কগুলি বাম দিকে ঘুরানোর পরে এবং পুনরায় পরিবর্তিত তালিকাকে আবার বাছাই করার পরেও পূর্ণসংখ্যার পরিমাণ same

উদাহরণ:

ইনপুট: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
আউটপুট (0-ভিত্তিক সূচক): 6
আউটপুট (1-ভিত্তিক সূচক):5

কেন?

0 ভিত্তিক সূচক:

After rotating each: [8,94,73,102,592,276,8227,3338,9217,63784,89487,7887471]
Sorted again:        [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]

Input indices:        0  1  2   3   4   5    6    7    8     9    10      11
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list:       [8,73,94,102,276,592,3338,8227,9217,63784,89487,7887471]
Modified indices:     0  2  1   3   5   4    7    6    8     9    10      11
Equal indices:        ^         ^                      ^     ^     ^       ^

So the output is: 6

1-ভিত্তিক সূচীকরণ:

After rotating each: [8,49,37,021,925,762,2278,3383,2179,37846,94878,8874717]
Sorted again:        [8,(0)21,37,49,762,925,2179,2278,3383,37846,94878,8874717]

Input indices:        1  2  3   4   5   6    7    8    9    10    11      12
Original input-list: [8,49,73,102,259,762,2782,3383,9217,37846,89487,7471788]
Modified list:       [8,21,37,49,762,925,2179,2278,3383,37846,94878,8874717]
Modified indices:     1  4  3  2   6   5    9    7    8    10    11      12
Equal indices:        ^     ^                               ^     ^       ^

So the output is: 5

চ্যালেঞ্জ বিধি:

  • ইনপুট-তালিকাটি কেবলমাত্র ইতিবাচক পূর্ণসংখ্যার জন্য গ্যারান্টিযুক্ত।
  • ইনপুট-তালিকাটি নিম্ন থেকে সর্বোচ্চে বাছাই করার গ্যারান্টিযুক্ত।
  • ইনপুট-তালিকাটিতে কমপক্ষে দুটি আইটেম থাকার গ্যারান্টিযুক্ত।
  • আপনি উপরে দেখতে পারেন যে, 0-ভিত্তিক এবং 1-ভিত্তিক সূচকে উভয়ই অনুমোদিত। আপনার দুটিতে কোনটি ব্যবহার করেছেন দয়া করে আপনার উত্তরে দয়া করে বলুন যেহেতু আউটপুটগুলি সেই অনুযায়ী পৃথক হতে পারে!
  • ঘোরার 0পরে শীর্ষস্থানীয় গুলি উপেক্ষা করা হয়, যা উপরের 1-ভিত্তিক উদাহরণের সাথে দেখা যেতে পারে, যেখানে পূর্ণসংখ্যার 102ঘোরার 021পরে পরিণত হয়, এবং তারপরে হিসাবে বিবেচিত হয় 21
  • ইনপুট-তালিকায় পূর্ণসংখ্যার অনন্য গ্যারান্টিযুক্ত এবং ঘূর্ণন সম্পন্ন হওয়ার পরে অনন্য থাকার গ্যারান্টিযুক্ত।
  • নোট করুন যে আমরা কেবল ইনপুট-তালিকার মানগুলির সাথে নয়, ইনপুটের অবস্থানের সাথে সম্পর্কযুক্ত ঘোরানো পূর্ণসংখ্যার অবস্থানগুলি দেখি। আমি এর দ্বারা কী বোঝাতে চাইছি তা স্পষ্ট করতে: ইনপুট তালিকা [1234,3412]এবং 1-ভিত্তিক সূচকের সাহায্যে তালিকাটি [2341,1234]প্রতিটি পূর্ণসংখ্যকে এটির সূচক পরিমাণের সাথে ঘুরানোর পরে পরিণত হয় এবং তারপরে বাছাইয়ের পরে [1234,2341]। যদিও মূল ইনপুট-তালিকা এবং ঘোরানো তালিকার উভয়ই 1234শীর্ষস্থানীয় স্থানে পূর্ণসংখ্যা রয়েছে তবে সেগুলি একই নয়! ঘোরানো আগে 1234ছিল 3412। এই ইনপুট-তালিকার জন্য 1-সূচকযুক্ত আউটপুটটি হ'ল 0, যেহেতু দুটি পূর্ণসংখ্যার তাদের অবস্থানগুলি অদলবদল করেছে।
  • ইনপুট নমনীয়। পূর্ণসংখ্যা / স্ট্রিং / ডিজিট-অ্যারে ইত্যাদির তালিকা / স্ট্রিম / অ্যারে হতে পারে, দয়া করে ইনপুটগুলি পূর্ণসংখ্যার হিসাবে না নিলে আপনি কী ব্যবহার করেছেন তা জানান state

সাধারণ নিয়ম:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • আপনার উত্তরটির জন্য ডিফল্ট আই / ও বিধিগুলির সাথে মানক বিধিগুলি প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং ফিরতি-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে দয়া করে আপনার কোডের (যেমন টিআইও ) একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন ।
  • এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।

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

Input: [8, 49, 73, 102, 259, 762, 2782, 3383, 9217, 37846, 89487, 7471788]
0-based output: 6
1-based output: 5

Input: [1234, 3412]
0-based output: 2
1-based output: 0

Input: [2349, 2820, 17499, 21244, 29842, 31857, 46645, 56675, 61643, 61787]
0-based output: 3
1-based output: 0

Input: [4976, 11087, 18732, 22643, 52735]
0-based output: 2
1-based output: 3

Input: [4414, 5866, 7175, 8929, 14048, 16228, 16809, 19166, 24408, 25220, 29333, 44274, 47275, 47518, 53355]
0-based output: 4
1-based output: 4

Input: [11205, 16820, 63494]
0-based output: 1
1-based output: 3

এই অবহেলিত 05AB1E প্রোগ্রামের সাথে আরও র্যান্ডম পরীক্ষার কেস উত্পন্ন করার জন্য নির্দ্বিধায় (বা থেকে অনুপ্রেরণা আঁকুন) , যেখানে ইনপুটটি এলোমেলো তালিকার আকার (দ্রষ্টব্য: এই জেনারেটরের আউটপুট নিয়ম মেনে চলতে পারে না " পূর্ণসংখ্যার অনন্য ক্ষেত্রে গ্যারান্টিযুক্ত ইনপুট-তালিকা, এবং ঘূর্ণনগুলি সম্পূর্ণ হওয়ার পরে অনন্য থাকার গ্যারান্টিযুক্ত ", সুতরাং এটি ব্যবহার করার সময় এটি মনে রাখবেন))


আমরা কি ধরে নিতে পারি যে ইনপুটটিতে কমপক্ষে 2 টি উপাদান রয়েছে?
রবিন রাইডার

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

আমরা কি স্ট্রিংগুলির তালিকা হিসাবে ইনপুট গ্রহণ করতে পারি?
অজ্ঞতার প্রতিমূর্তি

1
@ শেগি আমি যে উত্তরগুলি ভেবেছিলাম সেগুলি থেকে এটি উপকৃত হবে তা আমি অবহিত করেছি। আপনি যদি এগুলি থেকেও উপকৃত হতে পারেন এমন কোনও কিছু দেখতে পান তবে সেগুলিও অবহিত করুন।
কেভিন ক্রুইজসেন

1
উদাহরণ থেকে মনে হয় আউটপুটটি "পূর্ণসংখ্যার পরিমাণ যা এখনও একই সূচীতে থাকে, প্রতিটি পূর্ণসংখ্যায় অঙ্কগুলি ঘোরার পরে তার সূচকের পরিমাণটি বাম দিকে বার করে এবং আবার অ্যারে বাছাই করে " করা উচিত?
Qwr

উত্তর:


11

আর , 114 107 বাইট

-5 বাইট জিউসেপ্পিকে ধন্যবাদ

DigEmAll দ্বারা আউটগল্ফড।

function(l){for(j in seq(l))l[j]=rep(l[j]%/%(e=10^(b=nchar(l[j]):1-1))%%10,j+1)[j+0:b]%*%e
sum(sort(l)==l)}

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

0-ইন্ডেক্স।

অবরুদ্ধ সংস্করণ:

function(l) {
  n = length(l)                         # size of input
  for (j in 1:n) {  
    b = nchar(l[j]) -1                  # number of digits in l[j] -1
    e = 10 ^ (b:0) 
    d = l[j] %/% e %% 10                # convert to vector of digits
    l[j] = rep(d, j + 1)[j + 0:b] %*% e # rotate digits and convert back to an integer
  }
  sum(sort(l) == l)                     # number of integers which are in the same position
}

bকোনও পূর্ণসংখ্যার অঙ্কগুলি jঅবস্থানের দ্বারা আবর্তিত করতে কোডটি অঙ্কগুলি বহুবার পুনরুক্ত করে, তারপরে অঙ্কগুলিকে পজিশনে j+1নিয়ে যায় j+b। উদাহরণস্বরূপ, 1024 বার ঘোরাতে , মানগুলি চিহ্নিত করুন x(পজিশন 5 থেকে 7):

102102102102
    xxx

ফলস্বরূপ 021



@ জিউসেপ ধন্যবাদ! আমি মনে রাখারও প্রয়োজন seq(a=...)। আমি Mapপারফর্ম করার কিছু জাদু আছে আশা করি , তবে আমার প্রচেষ্টা বাইট গণনাটি সর্বোত্তমভাবে অপরিবর্তিত রেখে দিয়েছে।
রবিন রাইডার

Mapfunctionবয়লারপ্লেট কমপক্ষে 9 বাইট হওয়ায় কিছুটা ব্যয়বহুল হতে পারে তবে আপনি যদি 0-ইনডেক্সিংয়ে স্যুইচ করেন তবে আমরা 109 বাইট
জিউসেপ্পে

1
গুড ফাইন্ড! যে বুঝতে দ্বারা নিচে 107 seq(a=l)হতে পারে seq(l)যতদিন ইনপুট অন্তত 2 উপাদান (আমি জিজ্ঞাসা করলাম কিনা এই ঠিক আছে) আছে।
রবিন রাইডার



6

জাপট -x , 10 9 বাইট

0 ভিত্তিক

í¶UñÈséYn

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

í¶UñÈséYn     :Implicit input of integer array U
í             :Interleave with
  Uñ          :U sorted by
    È         :Passing each integer at 0-based index Y through the following function
     s        :  Convert to string
      é       :  Rotate right by
       Yn     :    Y negated
 ¶            :Reduce each pair by testing for equality
              :Implicit output of sum of resulting array

4

জেলি , 9 বাইট

Dṙ"JḌỤ=JS

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

মোনাডিক লিঙ্ক যা পূর্ণসংখ্যার একটি তালিকা গ্রহণ করে এবং 1-সূচক ব্যবহার করে ঘূর্ণন সম্পাদন করার পরে স্থানে থাকা পূর্ণসংখ্যার সংখ্যা নির্দেশ করে একটি পূর্ণসংখ্যা দেয় returns

ব্যাখ্যা

D         | Convert to decimal digits
 ṙ"J      | Rotate left by index
    Ḍ     | Convert back to integer
     Ụ    | Index in sorted list
      =J  | Check if equal to index in original list
        S | Sum

4

পাইথন 2 , 104 100 97 93 বাইট

b=[int((s*-~i)[i:i+len(s)])for i,s in enumerate(input())]
print map(cmp,b,sorted(b)).count(0)

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

0 ভিত্তিক সূচক।

প্রথমে প্রতিটি সংখ্যা ঘোরানো হয়, এবং তারপরে ফলাফলের সাথে ফলাফলের তুলনা করে তবে সাজানো হয়।


সংরক্ষিত:

  • -৩ বাইটস, এরিক দ্য আউটগোল্ফারকে ধন্যবাদ
  • -4 বাইটস, কেভিন ক্রুইজসেনকে ধন্যবাদ (এবং তার নিয়ম-পরিবর্তন)


@ এরিকথিউটগল্ফার ধন্যবাদ, আমি ল্যাম্বডা বানানোর চেষ্টা করতে খুব ব্যস্ত ছিলাম, যা আমি ভুলে গিয়েছিলাম input():)
টিফিল্ড

এজন্য আমি প্রথমে একটি পূর্ণ প্রোগ্রাম করার চেষ্টা করি ...: ডি সিরিয়াসলি, আপনি যদি প্রথমে একটি পূর্ণ প্রোগ্রাম করার চেষ্টা করেন তবে আপনি পরিষ্কারভাবে দেখতে পাবেন এটি ল্যাম্বডায় রূপান্তরিত করার যোগ্য কিনা if defএখনই শুরু করবেন না (তারা পাইথন 3 এর বিপরীতে পাইথন 2 তে বেশ বেহুদা)।
এরিক আউটগলফার

আমি এখনই স্ট্রিং হিসাবে ইনপুট-তালিকাটিকে অনুমতি দিয়েছি, যাতে আপনি চারপাশে থাকা কবরের উচ্চারণগুলি সরিয়ে 4 বাইট ফেলে দিতে পারেনs
কেভিন ক্রুজসেন

4

আর , 90 88 85 বাইট

function(x)sum(rank(as.double(substr(strrep(x,L<-sum(x|1)),y<-1:L,y+nchar(x)-1)))==y)

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

ব্যাখ্যা সহ নিবন্ধিত কোড:

function(x){
    L=sum(x|1)                         # store the length of x

    R=strrep(x,L)                      # repeat each string of vector x L times

    S=substring(R,1:L,1:L+nchar(x)-1)) # for each string of R, extract a substring of the same 
                                       # length of the original number starting from index 1 
                                       # for the 1st element, index 2 for the 2nd and so on
                                       # (this basically rotates the strings )

    Y=as.double(S)                     # convert the strings to numbers

    sum(rank(Y)==1:L)                  # return the number of times the ranks of Y
                                       # match with their original positions
}

3

জে , 28 26 বাইট

-2 বাইট জোনা ধন্যবাদ জানায়

1#.i.@#=[:/:#\".@|.&>":&.>

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


1
খুশী হলাম। দেখে মনে হচ্ছে আপনি "0( এটি অনলাইনে ব্যবহার করে দেখুন! ) হারাতে পারেন তবে এর বাইরে আর আমি গল্ফ করার কোনও উপায় দেখিনি।
জোনাহ

@ জোনাঃ আপনাকে ধন্যবাদ! কেন আমি এটি না করে চেষ্টা করিনি জানি না।
গ্যালেন ইভানভ

2

স্ট্যাক্স , 11 10 বাইট

ìát'óJ♣á◄·

এটি চালান এবং এটি ডিবাগ করুন

এই প্রোগ্রামটি 0-ভিত্তিক সূচক ব্যবহার করে এবং স্ট্রিংগুলির অ্যারে হিসাবে ইনপুট নেয়। নতুন ইনপুট স্পেসিফিক্যাটিনোসের সুযোগ নিয়ে আমি একটি বাইট সংরক্ষণ করেছি।



2

পাইথ , 15 বাইট

sqVSJ.ev.<`bkQJ

এটি অনলাইন চেষ্টা করুন! 0-ভিত্তিক সূচক ব্যবহার করে।

sqVSJ.ev.<`bkQJ   Implicit: Q=eval(input())
     .e      Q    Map elements of Q, as b and with index k, using:
          `b        Convert b to string
        .<  k       Rotate the above left k places
       v            Convert back to integer
    J             Store the above as J
   S              Sort the above
 qV           J   Vectorised equality check with the unsorted list
s                 Sum, implicit output

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

@ ফ্রাইআম দ্য এজিগম্যান আপনি সম্ভবত সঠিক, আমি লেক্সোগ্রাফিক বাছাই বনাম পূর্ণসংখ্যার বাছাই বিবেচনা করবো না - কোডটির sমূল সংস্করণটিতেও vএকই প্রভাব ছিল। আমি এটিকে আবার সম্পাদনা করব
Sok

আহ, পাশাপাশি কেভিন উল্লেখ করেছেন এখন আপনি বাইটটিকটি ফেলে দিতে পারেন এবং বাইট সংরক্ষণের জন্য স্ট্রিংগুলির তালিকা হিসাবে ইনপুটটি নিতে পারেন।
FryAmTheEggman

2

এপিএল + উইন, 23, 21 19 বাইট

অক্ষরের নেস্টেড ভেক্টর হিসাবে পূর্ণসংখ্যাকে ইনপুট করে 2 বাইট সংরক্ষণ করা হয়

+/i=⍋⍎¨(i←⍳⍴v)⌽¨v←⎕

1 সূচকযুক্ত।

v←⎕ prompt for input. 

(i←⍳⍴v)⌽¨ rotate each set of characters by input indices.

⍋⍎¨ convert characters to integers and get sorted indices.

+/i= sum where original and sorted indices are the same.

এটি অনলাইন চেষ্টা করুন! সৌজন্যে ডায়ালগ ক্লাসিক


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

কেভিন ক্রুজসেন এটি দেখানোর জন্য ধন্যবাদ। স্ট্রিংগুলির একটি নেস্টেড ভেক্টরকে ইনপুট করা 2 বাইট সংরক্ষণ করে
গ্রাহাম

2

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

-8 বাইট পরিবর্তে স্ট্রিংগুলির অ্যারে গ্রহণ করার জন্য @ শ্যাগি ধন্যবাদ। এটি থেকে আরও 4 বাইট গল্ফ করেছে। এবার মেমরি ত্রুটি ট্রিগার করবে না।

a=>[...b=a.map(F=(x,i)=>i--?F(x.slice(1)+x[c=0],i):x)].sort((p,q)=>q-p).map(x=>c+=x==b.pop())|c

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

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

-4 বাইট ধন্যবাদ @ আর্নল্ড!

a=>[...b=a.map((x,i)=>"".padEnd(x+i,x+=c='').substr(i,x.length))].sort((p,q)=>q-p).map(x=>c-=x==b.pop())|-c

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

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

a=>[...b=a.map((x,i)=>"".padEnd(x+i,x).substr(i,`${x}`.length))].sort((p,q)=>p-q).map((x,i)=>x-b[i]||c++,c=0)|c

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

0-ইন্ডেক্স। খুব বড় এন্ট্রিগুলির জন্য মেমরি ত্রুটি ট্রিগার করতে পারে।


2
পূর্ণসংখ্যার স্ট্রিংগুলির অ্যারে হিসাবে ইনপুট গ্রহণ করে 99 বাইট
শেগি

@ শেগি ধন্যবাদ, এবং এটি এখন 95 বাইট;)
শিয়ারু আসাকোটো

2

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

{sum ^$_ Z==sort {+[~] rotate .[$^i].comb,$i},^$_}

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

0 ভিত্তিক সূচক। একটি রাকুডো বাগও উন্মুক্ত করে ।

ব্যাখ্যা

{                                                }  # Anonymous block
            sort                              ^$_   # Sort indices 0..n
                 {                          },  # by
                              .[$^i]            # element at index i
                                    .comb       # split into chars
                       rotate            ,$i    # rotated i times
                   [~]  # joined
                  +     # converted to number
     ^$_ Z==  # Pairwise equal to original indices 0..n
 sum   # Sum of equal indices

2

পিএইচপি ,159 141 134 130 বাইট

function($a){foreach($a as$x){for($j=$i;$j--;$x=substr($x,1).$x[0]);$b[$x]=$i++;}ksort($b);foreach($b as$z)$y+=++$j==$z;return$y;}

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

শূন্য-ভিত্তিক সূচক।

Ungolfed:

function( $a ) { 
    // iterate through digits
    foreach( $a as $x ) {
        // rotate the digits the number of times based on their index
        for( $j = $i; $j--; ) {
            // move first digit to last digit
            $x = substr( $x, 1 ) . $x[0];
        }
        // the new number is used as key for sort, value is the original index
        $b[ $x ] = $i++;
    }
    // sort by the new numbers
    ksort( $b );
    // iterate sorted array
    foreach( $b as $z ) {
        // if new index matches original index, increment count ($y)
        if ( ++$j == $z ) {
            $y++;
        }
    }
    return $y;
}
  • -4 বাইটস স্ট্রিংগুলির অ্যারে হিসাবে ইনপুট গ্রহণ করছে, এটি নির্দেশ করার জন্য @ কেভিন ক্রুয়েজসেন থেকে থেক্স।

আমি পিএইচপি খুব ভাল জানি না, কিন্তু আমি এখন পূর্ণসংখ্যার পরিবর্তে স্ট্রিংয়ের একটি তালিকা অনুমতি দিচ্ছি, তাই আমি মনে করি আপনি এটিগুলি মুছে ফেলতে পারেন .=''?
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন আপনি সঠিক আছেন স্ট্রিংগুলির অ্যারের হিসাবে গ্রহণ করা এটি প্রয়োজনীয় হওয়া থেকে সরিয়ে ফেলবে। আমি সেই অনুযায়ী আপডেট করব।
640KB


2

টি-এসকিউএল কোয়েরি, 99 বাইট

এসকিএল-র কোনও ঘোরানোর পদ্ধতি নেই, সুতরাং আমাকে নিজের সিনট্যাক্সটি প্রয়োগ করতে হয়েছিল, যেহেতু এটি একটি কোয়েরি, এটি লুপ ছাড়াই করতে হয়েছিল।

0 ভিত্তিক সূচক।

ইনপুট হিসাবে একটি টেবিল ভেরিয়েবল ব্যবহার করা।

SELECT-sum(1/~(z*3))FROM(SELECT~i+rank()over(order by
substring(n+n,i%len(n)+1,len(n))*1)z FROM @)c

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



1

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

sub f{my$i;grep/\d+$/&&$i++==$&,sort{$a<=>$b}map{my$n=shift;map$n=~s/(.)(.+)/$2$1/,1..$_;"$n.$_"}0..$#_}

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

পার্লে 0-ভিত্তিক সূচক। অবহেলিত এবং মন্তব্য করেছেন:

sub f {
  my $i;                            #index counter
  grep /\d+$/ && $i++==$&,          #keep/return elems where $i matches original index stored as decimals
  sort { $a<=>$b }                  #sort rotated elems numerically (<=> is the numerical comparison op
  map {                             #loop through input
    my $n = shift;                  #shift(@_) got elem from input array @_
    map $n=~s/(.)(.+)/$2$1/, 1..$_; #rotate left times current index 
    "$n.$_"                         #use rotated number with original index number as decimals (to dont affect sort)
  }
  0..$#_
}

1

রুবি -ap , 77 বাইট

1-ইন্ডেক্স। টেম্পটি আগে মুছে ফেলা হয়েছিল কারণ আমি অনুমানটির কিছু অংশ মিস করেছি।

-pSTDIN এর একটি লাইন পড়ে এবং $_শেষে আউটপুট দেয়। -aস্প্লিট যে স্থানগুলি দ্বারা লাইন পড়ে এবং এটি সংরক্ষণ করে $F

i=0
$_=$F.zip($F.sort_by{|s|s.chars.rotate(i+=1).join.to_i}).count{|a,b|a==b}

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


আপনি প্রতিস্থাপন 2 বাইট সংরক্ষণ করতে পারবেন [...].join.to_iসঙ্গেeval [...]*''
Doorknob

1
@ ডুরকনব দুর্ভাগ্যক্রমে নয় ... এমন প্রান্তের কেস রয়েছে যেখানে কোনও সংখ্যাটি যদি শীর্ষস্থানীয় শূন্য evalহিসাবে ঘোরা হয়, তবে এটি একটি বেস -8 নম্বর হিসাবে ব্যাখ্যা করবে, যা আমাদের গণনাগুলিকে গোলমাল করতে পারে ...
মান ইঙ্ক

1

ওল্ফ্রাম ভাষা (গণিত) , 65 বাইট

o=Ordering
g=Count[o@MapIndexed[FromDigits@*RotateLeft,#]-o@#,0]&

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

1-ভিত্তিক। আমরা ডিজিটের তালিকার তালিকা হিসাবে ইনপুটটি নিই, যা কাজ করে কারণ ম্যাথমেটিকাগুলি দৈর্ঘ্য অনুসারে তালিকাগুলি অর্ডার করে, তারপর অভিধানিকভাবে, যেমন মূল সংখ্যাগুলির মতো the


1

বাশ , 204 201 বাইট

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

1-ভিত্তিক সমাধান। সহায়ক রোটেশন অ্যালগোরিদমের জন্য @ রবিনরাইডারকে ধন্যবাদ জানাই।

for((i=1;i<$#+1;i++));do eval s=\${$i};for((j=0;j<i;j++));do eval s=${s}\${$i};done;eval n=\${s:$i:\${#$i}};echo $n $i;done|sort -nk1,1|{ i=1;c=0;while read d j;do((i==j))&&((c++));((i++));done;echo $c; }

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

কেভিনের মন্তব্যের পরে সংশোধিত কোড; এটি অনলাইন চেষ্টা করুন!


আমি বাশকে খুব বেশি জানি না তবে আমি মনে করি আপনি এর মধ্যে শেষ স্থানটি সরিয়ে ফেলতে পারেন ;}। এছাড়াও, আপনি আপনার প্রথম লুপটি এতে পরিবর্তন করতে পারেন for((i=0;++i<=$#;));
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন - সাধারণত আমি বাশকে পেয়েছি এবং বন্ধুদের কমান্ড লাইনটি বিশ্লেষণের জন্য সেই জায়গার প্রয়োজন আছে। এই উপলক্ষে আপনি সঠিক এটি এটিকে সরানো হতে পারে। পুনরায় বেস এবং প্রাক-বর্ধনের জন্য দুর্দান্ত ধারণা। 202 বাইট।
পিজেএফ

1

স্কালা , 200 160 বাইট

def f(a:Seq[String])=
  a.zipWithIndex
   .map(x=>{val r=x._2%x._1.size;x._1.drop(r)+x._1.take(r)->x._2})
   .sortBy(_._1.toInt)
   .zipWithIndex
   .filter(x=>x._1._2==x._2)
   .size

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

0-ইন্ডেক্স। ইন্ডেন্টেশন এবং নিউলাইনগুলি সরানোর পরে 160 টি অক্ষর। এটি প্রিন্ট 6:

println( f(Seq("8","49","73","102","259","762","2782","3383","9217","37846","89487","7471788")) )
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.