প্রায় অভিধান সংক্রান্ত তালিকার তুলনা


9

ইনপুট

দুটি তালিকা Aএবং Bnonnegative পূর্ণসংখ্যার।

আউটপুট

উভয় ক্ষেত্রেই 1, 0অথবা -1, কিনা তার উপর নির্ভর করে Aচেয়ে বড়, এর, বা সমান চেয়ে ছোট Bথেকে সম্মান সঙ্গে পাকান আভিধানিক ক্রম নীচে যেভাবে বর্ণিত হয়েছে। আপনি যদি চান, আপনি প্রতিস্থাপন করতে পারেন 1, 0এবং -1অন্য কোন তিনটি ধ্রুবক মান।

মোচড়িত ডিক্সিকোগ্রাফিকাল অর্ডারিং হ'ল সাধারণ ডিক্সিকোগ্রাফিকাল অর্ডারের মতো, যাতে আপনি তালিকার উপাদানগুলিকে উপাদান অনুসারে তুলনা করেন এবং তাদের আদেশটি প্রথম ভিন্ন ভিন্ন সূচিতে স্থির করেন। যাইহোক, বাঁকা সংস্করণে আমরা প্রতিটি সূচীতে ননেনিগেটেভ পূর্ণ পূর্ণসংখ্যার জন্য পৃথক ক্রম ব্যবহার করি। যথা, প্রতিটি সূচীতে i(সূচকের সূচনাটি শুরু হয় 1), প্রথম iনন-নেগেটিভ পূর্ণসংখ্যার ক্রম (থেকে 0থেকে i-1) বিপরীত হয় এবং সেগুলি অন্য সমস্ত সংখ্যার উপরে চলে যায়। তদুপরি, "নিখোঁজ উপাদান" যা একটি তালিকার অপরটির চেয়ে সংক্ষিপ্ত হয়ে সরাসরি নীচে স্থানান্তরিত করে i-1। দৃশ্যরূপে, সূচিতে অর্ডার iহয়

i < i+1 < i+2 < i+3 < ... < [missing element] < i-1 < i-2 < i-3 < ... < 2 < 1 < 0

নোট করুন যে প্রথমটি ...অসীম বহু সংখ্যাকে বোঝায়। এর অর্থ হল যে নীচের তালিকাগুলি বাঁকানো শব্দকোষ সংক্রান্ত ক্রমটির সাথে আরোহী ক্রমে রয়েছে:

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

বিধি

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

পরীক্ষার কেস

Output 1:
[0] []
[] [1]
[] [1,2,1,2]
[2,1] [1,1]
[0,1,2] [0,2,1]
[3,0] [3,1]
[3,1] [3]
[2] [2,2]
[2] [2,23]
[2,24] [2,23]
[2,1] [2,23]

Output 0:
[] []
[0] [0]
[1,1] [1,1]
[2,1,2] [2,1,2]

Output -1:
[1,2,1,1,2] [1,2,1,1,1]
[1,2,1,1,5] [1,2,1,1,4]
[1,2,1,1,5] [1,2,1,1]
[1,2,1] [1,2,1,1]
[1,2,1,1,5] [1,2,1,1,6]
[1,2,1,1,6] [1,2,1,1,7]

ইনপুট তালিকাগুলি কি 0 থেকে 1, 1 থেকে, বা যে কোনওটি আমাদের ভাষার জন্য উপযুক্ত?
পিটার টেলর

@ পিটারটেলর ১ থেকে। আমি এটি পরিষ্কার করে দেব।
জাগারব

আমি কি আউটপুটটির জন্য -1/0/1 এর পরিবর্তে তুলনামূলক ফলাফলের জন্য হাস্কেলের নিজস্ব এনাম ব্যবহার করতে পারি?
জন ডিভোরাক

@ জনডভোরাক আমি এটির অনুমতি দেব এবং চ্যালেঞ্জটি সম্পাদনা করব।
জাগারব

উত্তর:


1

সিজেম - 57

q:S~=0{S~]:A:,~e>{A{_,I>{I=_I>0{W*2}?}1?[\]}%}fI]z~>2*(}?

হ্যাঁ এটি এখনও অনেক দীর্ঘ ...

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

সংক্ষিপ্ত বিবরণ:
কোডটি 0 টি আউটপুট দেয় যদি ট্র্যাডিশনিক অর্থে অ্যারে সমান হয়, অন্যথায় এটি প্রতিটি অ্যারের প্রতিটি আইটেমকে 2-এলিমেন্ট অ্যারে রূপান্তর করে: [0 a i ] যদি i > i (0-ভিত্তিক), [1 যাই হোক না কেন] যদি i অনুপস্থিত থাকে, এবং [2 -a i ] যদি i <= i। প্রক্রিয়াটিতে, সংক্ষিপ্ত অ্যারেটি আরও বড় আকারে প্রসারিত করা হয়। তারপরে রূপান্তরিত অ্যারেগুলি অভিধানের তুলনায় তুলনা করা হয় এবং ফলাফলটি -1/1 এ সামঞ্জস্য করা হয়।


3

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

c=lambda*a:cmp(*[[(max(i-x,-1),x)for i,x in enumerate(L)]+[(0,)]for L in a])

এটি উভয় তালিকার প্রতিটি পূর্ণসংখ্যাকে 2-টিপল দিয়ে মোচড়িত ক্রমের জন্য অ্যাকাউন্টে প্রতিস্থাপন করে। পাইথন 2 এর cmpবিল্টিন বাকী কাজগুলি করে।

ব্যবহার:

>>> c([1,2,1,1,6], [1,2,1,1,7])
-1

1
এই সংক্ষিপ্ত তালিকার জন্য এই অ্যাকাউন্টটি কীভাবে বিভিন্ন দীর্ঘ তালিকার মধ্যে যেতে পারে ( [3,2,3,1341] < [3,2,3] < [3,2,3,0]?
নটকি

@ নটকি এটি (0,)প্রতিটি তালিকার শেষের দিকে টিপল যুক্ত করে , যা কোনও (-1, x)সময়ের চেয়ে বৃহত্তর এবং (i-x, x)কখন থেকে কম i-x >= 0
grc

ওহ অবশ্যই. আমি পাইথনে শিক্ষিত নই।
নটকি

1

পার্ল, 74

ভাল অ্যারে ম্যানিপুলেশন ফাংশন পার্ল ছাড়া কাজের জন্য সর্বোত্তম সরঞ্জাম নয়, তবে এটি কাজ করে।

#!perl -pa
$i=0,s/\d+,?/$s=sprintf"%9d",$&;$&>$i++?$s:~$s/ge for@F;$_=$F[0]cmp$F[1]

আমাকে পরীক্ষা করুন


1

জে, 95 বাইট

(অতি স্বল্প নয় তবে যাই হোক না কেন। অবশ্যই গল্ফযোগ্য)

f=.4 :0
m=.>:>./x,y
t=.(|+(1+m)*0>:*)@(i.@#-~])@(],m$~>&#*-&#)
x(t~(*@-&((m+#x,y)&#.))t)y
)

সব পরীক্ষার কেস পাস করে। (দুর্দান্ত পরীক্ষার কেস সেট! ধন্যবাদ!)

পদ্ধতি:

  • সর্বাধিক মান +1 ( m=.>:>./x,y) দিয়ে সংক্ষিপ্ত তালিকায় পডিং ।(],m$~>&#*-&#
  • রূপান্তরকারী তালিকার উপাদানগুলি যাতে স্বাভাবিক তুলনা ব্যবহার করা যায়। (|+(1+m)*0>:*)@(i.@#-~])
  • পর্যাপ্ত এক্স সহ দুটি তালিকা থেকে দুটি বেসএক্স সংখ্যা গণনা করা হচ্ছে। ((m+#x,y)&#.)
  • দুটি সংখ্যার পার্থক্যের সাইনাম ফিরিয়ে দেওয়া।*@-&

0

গণিত, 65

f=-Order@@MapIndexed[If[#>Last@#2,#,a-b#]&,PadRight[{##}+1],{2}]&

ব্যবহার:

f[{1, 2, 1, 1, 6}, {1, 2, 1, 1, 7}]

-1

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