আমাকে এই তারগুলি আনুষঙ্গিকভাবে সহায়তা করুন!


12

আমার তারে সব জঞ্জাল!

তারগুলি সমস্ত জট হয়ে গেলে কি বিরক্তিকর হয় না? ঠিক আছে, আমার সাথে এটি ঘটেছে, তাই আমি তাদের সাহায্য করতে আমাকে সাহায্য করতে চাই! আপনার সুবিধার জন্য, আমি সেগুলি ডিভাইস থেকে সমস্ত সংযোগ বিচ্ছিন্ন করে ফেলেছি, তবে তারা এখনও সমস্ত আউটলেটে সংযুক্ত। আপনার চ্যালেঞ্জ হ'ল কীভাবে এগুলিকে আটকে রাখা যায়!

ইনপুট

ইনপুটটিতে স্পেস, পাইপ এবং এক্স (উভয় ক্ষেত্রে) থাকবে। ইনপুটটি এরকম কিছু দেখবে:

| | | |
 X  | |
| |  x 
|  X  |
| | | |

মূলধন এক্স এর অর্থ বাম তারটি ডান তারের উপর দিয়ে অতিক্রম করে এবং একটি ছোট হাতের এক্স এর অর্থ বিপরীত। প্রথম এবং শেষ লাইন সর্বদা থাকবে | | | |...। আপনি ইনপুটটি কমা দ্বারা পৃথক করা স্ট্রিং, স্ট্রিংগুলির একটি অ্যারে হিসাবে নিতে পারেন The ফর্ম্যাটটি কঠোর নয় যতক্ষণ না এটি বোধগম্য হয় এবং এতে কোনও অতিরিক্ত তথ্য থাকে না।

আউটপুট

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

নমুনা আউটপুট

উপরের উদাহরণের ইনপুটটির জন্য, আউটপুটটি এমন হবে:

2 3 R
3 4 L
1 2 R

এখানে আউটপুট ফর্ম্যাটটি স্থান বিভাজিত মানগুলির একটি নতুন লাইন দ্বারা পৃথক করা তালিকা। এটি 1-সূচকযুক্ত।

আরও বিশদ

এক্স এবং এক্স উভয় ক্রমে একে অপরের উপর উল্লম্বভাবে স্ট্যাক করা বৈধ। যেহেতু আমি অলস, আমি অযথা তারের চারপাশে স্যুইচ করতে চাই না, সুতরাং এই ক্ষেত্রেগুলির জন্য কিছু আউটপুট না; যদি আমি এটি পাই তবে আমি কেবল তারগুলি সোজা করার জন্য আলতো করে টানব।

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

যদি এটি পরিষ্কার না হয় তবে এক্স এক্স এবং এলকে নির্মূল করে।

একই সারিতে দুটি তারের ক্রসিং থাকতে পারে, এক্ষেত্রে এই দুটি অদলবদলের ক্রমের কোনও ব্যাপার নেই। আপনি কখনই এর মতো কিছু পাবেন না | X X |(এটি বোঝায় না কারণ এটি বোঝায় যে মাঝের তারটি তার বাম এবং ডান উভয় তারের উপর দিয়ে গেছে)।

সবসময় ক্রসিং হয় না ...

ইনপুটটি একক পাইপ হতে পারে। তবে ইনপুট কখনই ফাঁকা হবে না।

20 ডিসেম্বরে সংক্ষিপ্ত বৈধ সমাধান জয়!

আরও উদাহরণ

আমি প্রতিশ্রুতি হিসাবে:

উদাহরণ 1

ইনপুট

| | | | | |
| |  X   x 
 X  |  x  |
|  x  |  X 
 X   X  | |
| | | | | |

আউটপুট

1 2 R
3 4 R
2 3 L
5 6 R
1 2 R
4 5 L
3 4 R
5 6 L

উদাহরণ 2

ইনপুট

| | |
 X  |
|  x 
| | |
|  X 
|  x 
| | |

আউটপুট

2 3 L
1 2 R

উদাহরণ 3

ইনপুট

|

আউটপুট ফাঁকা। হ্যাঁ, আপনাকে এই মামলাটি মোকাবেলা করতে হবে।

উদাহরণ 4

ইনপুট

| |
 X 
 x 
 X 
 x 
 X 
 x 
 X 
 x 
 X 
 x 
| |

আউটপুট ফাঁকা। শুধুই মজার জন্য :).

উদাহরণ 5

ইনপুট

| |
 X 
 X 
 x 
 X 
 x 
 x 
| |

আউটপুট এখনও ফাঁকা ...


4
একই সারিতে দুটি জোড়া তারের জড়িয়ে থাকা কি সম্ভব?
জেমস হোল্ডারেন্স

1
@ জেমসহোল্ডারেন্স হ্যাঁ, এটি। এই ক্ষেত্রে, আদেশ কোনও বিষয় নয়। আমি প্রশ্নে এটি স্পষ্ট করব। ধন্যবাদ!
হাইপার নিউট্রিনো

নিবন্ধন করুন
হাইপারনিউট্রিনো

উত্তর:


1

বেফুঞ্জ, 173 বাইট

চ্যালেঞ্জের বর্ণনায় বর্ণিত সঠিক বিন্যাসে স্ট্যান্ডিনের কাছ থেকে ইনপুটটি পড়া হয়, যদিও এটি অত্যন্ত গুরুত্বপূর্ণ যে প্রতিটি লাইনের সঠিক দৈর্ঘ্য হওয়া উচিত এবং চূড়ান্ত লাইনে অবশ্যই একটি নতুন লাইন অন্তর্ভুক্ত করা উচিত (অর্থাত্ line লাইনের শেষে ইওএফ নয়)।

$1>>05p~$~:55+-#v_
$_^#`"N":+1g50$<>:2+3%1-05g6g+0v>!#:v#
vg50-1*2p51:-1_^#:<*2!!-*84p6g5<
 +#,.#$"R"\#\-#+5<^g51$_:0`6*\25g\v@_:#!.#:1#,
>+::25p6g\48*\6p48 *-:!^!:--1*2`0:<

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

এই সমাধানের জন্য প্রাথমিক ধারণাটি হ'ল আমাদের কাছে প্রতিটি তারের মোড়ের গণনাগুলির একটি "অ্যারে" রাখার ব্যবস্থা রয়েছে। সুতরাং প্রতিবারই যখন আমরা একটি দিকের সাথে একটি মোচড়ের মুখোমুখি হই তখন আমরা সংশ্লিষ্ট তারের জন্য গণনাটি বাড়িয়ে তুলি, অন্যদিকে একটি বাঁকটি গণনা হ্রাস পাবে।

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

ইনপুটটির শেষ পংক্তির পরে, ইনপুট স্ট্রিমটি বারবার ইওএফ ফেরত দেয় এবং এই ইওএফ অক্ষরগুলি কমপক্ষে ফ্লাশিংয়ের উদ্দেশ্যে, প্রতিটি তারে মোচড় হিসাবে ব্যাখ্যা করা হয়। এটি প্রোগ্রামটিকে অ্যারেতে কোনও বকেয়া গণনা ফ্লাশ করতে বাধ্য করে, তবে এটি কোনও নতুন মোড়ের গণনা তৈরি করবে না।

একবার আমরা ইনপুট প্রক্রিয়াটি শেষ করার পরে তারগুলিকে অবিচ্ছিন্ন করার জন্য সমস্ত কমান্ডগুলি এখন স্ট্যাকের মধ্যে থাকবে। এর অর্থ আমরা নীচে থেকে তারগুলিকে আনুষঙ্গিক করতে প্রয়োজনীয় নির্দেশাবলী আউটপুট করতে কেবল বিপরীত ক্রমে এগুলি পপ করতে পারি।


এটি নিখুঁতভাবে কাজ করে বলে মনে হচ্ছে। ভাল করেছ!
হাইপারনিউটারিনো

এটি বিজয়ী উত্তর। ভাল করেছ! এছাড়াও, আমার জন্য অন্যান্য উত্তরগুলি পরীক্ষা করার জন্য ধন্যবাদ! :)
হাইপারনিউট্রিনো

@AlexL। ধন্যবাদ। এটি সাইটে আমার প্রথম বিজয়ী উত্তর। ভাবেননি যে বেফুঞ্জের মাধ্যমে এটি কখনও সম্ভব হবে। :)
জেমস হোল্ডারেন্স

সমস্যা নেই. জয়ের অভিনন্দন! আমি বরং অবাক হওয়ার পাশাপাশি আপনি কীভাবে বেফুঞ্জ উত্তরটি দিয়েছিলেন তাও আশ্চর্য। :)
হাইপারনিউট্রিনো

5

পাইথ - 26 25 বাইট

খুব সোজা, সম্ভবত আমি ফিল্টারিং গল্ফ করতে পারেন।

fhhT_m+hB/xrdZ\x2@"RL"}\x

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


ভাল চেষ্টা। দুর্ভাগ্যক্রমে, চরিত্রটি আউটপুট হিসাবে সঠিক নয়; এটি প্রতিবারই আর বলে মনে হচ্ছে। ভাল চেষ্টা যদিও; সংখ্যাগুলি সঠিকভাবে প্রকাশিত হচ্ছে!
হাইপারনিউটারিনো

@AlexL। আমি বোকা, আমি in
আরগগুলিকে

আমি দেখি. চমৎকার উত্তর! একটি upvote আছে। :)
হাইপারনিউটারিনো

2
যদি আমি ভুল না হয়ে থাকি তবে আপনার ক্ষেত্রে এক্স এবং এক্সটি উল্লম্বভাবে স্ট্যাক করা ক্ষেত্রে এটি হ্যান্ডেল হবে না appear এটি আপনাকে অযৌক্তিকভাবে তারগুলি পিছনে পিছনে অদলবদল করতে বলে।
জেমস হোল্ডারেন্স

5

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

f=([t,...a],r=[])=>a[0]?t.replace(/x/gi,(c,i)=>(c=c<'x'?'R':'L',i=++i/2,r.reduce((f,[j,,d],n)=>f||i<j+2&&j<i+2&&(j-i|c==d||r.splice(n,1)&&2),0)<2?r=[[i,i+1,c],...r]:r))&&f(a,r):r

স্ট্রিংগুলির প্রতিনিধিত্বকারী রেখার অ্যারে হিসাবে ইনপুট নেয় এবং মানগুলির অ্যারেগুলির অ্যারে প্রদান করে [[2, 3, "R"], [3, 4, "L"], [1, 2, "R"]]। বিপরীত ক্রমটি অপসারণে সহায়তা করে।


আপনি কোথা sথেকে পাচ্ছেন ? আমি এটি repl.it এ চালাচ্ছি এবং এটি আমাকে বলছে যে একটি আছে ReferenceError: s is not defined
হাইপারনিউট্রিনো

@AlexL। ওফস, আমি আমার কোডটির পূর্ববর্তী সংস্করণে ঘটনাক্রমে পেস্ট করেছি, যা আমি গল্ফ শেষ করিনি। এখনই ঠিক করা উচিত।
নীল

@ জেমসহোল্ডার্নি আমার উত্তর জমা দেওয়ার পরে প্রশ্নটি পরিবর্তন হয়ে গেছে, আমাকে এটি আপডেট করতে হবে।
নীল

পুনঃটুইট দুঃখিত, নীল। আমাকে কেবল প্রশ্নের কিছু অংশ পরিষ্কার করা দরকার যা আমি আগে পরিষ্কার করেছিলাম না।
হাইপারনিউটারিনো

@ জেমসহোল্ডারনেস আমি বুঝতে পেরেছি, যে কারণে আমি আমার উত্তরটি ননপ্যাটিংয়ের হিসাবে চিহ্নিত করেছি কারণ এটি প্রশ্নের পূর্ববর্তী পুনরাবৃত্তির জবাব দিয়েছিল, যতক্ষণ না আমি বর্তমান প্রয়োজনগুলিতে এটি আপডেট করতে সক্ষম হয়েছি।
নীল

3

পাইথন 2, 244 241 বাইট

m=[]
for l in input():
 for i in range(len(l)):
  c=l[i];a=i/2+1;L,R=[a,a+1,'LR'[c>'v']],[a,a+1,'RL'[c>'v']];x=m.index(L)if L in m else-1;M=zip(*m[:x+1])
  if c in'xX':
   if x>=0and(a in M[1]or a+1in M[0])<1:del m[x]
   else:m=[R]+m
print m

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

উদাহরণ:

ইনপুট: ['| | | |', ' X | |', '| | x ', '| X |', ' x | |']

আউটপুট: [[1, 2, 'L'], [2, 3, 'R'], [3, 4, 'L'], [1, 2, 'R']]

সম্পাদনা: মামলার জন্য স্থির:

ইনপুট: ['| | |', ' X |', ' X |', ' x |', '| X', ' X |', ' x |', ' x |', '| | |']

আউটপুট: [[1, 2, 'L'], [2, 3, 'R'], [1, 2, 'R']]


@ জেমসহোল্ডারেন্স এখনই ঠিক করা উচিত।
টিফিল্ড

দেখে মনে হচ্ছে এটি এখন সঠিকভাবে কাজ করছে!
হাইপারনিউট্রিনো

@ জেমসহোল্ডার্নি হ্যাঁ, এটি একটি সমস্যার মতো মনে হচ্ছে। দয়া করে এটি ঠিক করুন, টিফিল্ড। অন্যথায়, দুর্দান্ত চেষ্টা!
হাইপারনিউটারিনো

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