অভিনব স্ট্রিং প্রতিস্থাপন


16

দিন S, aএবং bপ্রতিটি একটি স্ট্রিং প্রতিনিধিত্ব

গোল: লিখুন যেখানে আপনি সব ঘটনার প্রতিস্থাপন একটি প্রমিত স্ট্রিং ফাংশন প্রতিস্থাপন aএকটি স্ট্রিং Sসঙ্গে bএতক্ষণ যেমন aইতিমধ্যে একটি দৃষ্টান্ত অংশ নয়b

উদাহরণস্বরূপ, যদি আমাদের স্ট্রিং S= থাকেMy oh my that there is a big ol' that

এবং আমরা একটি অভিনব প্রতিস্থাপন করতে চেয়েছিলেন a = thatএবং b = that thereআমরা প্রতিটি উদাহরণের প্রতিস্থাপন করবে thatসঙ্গে that thereদৃষ্টান্ত যতদিন thatইতিমধ্যে একটি দৃষ্টান্ত নয়that there

সুতরাং এই ক্ষেত্রে আউটপুট হবে: My oh my that there is a big ol' that there

প্রথমটি thatপ্রতিস্থাপন করা হয়নি কারণ এটি ইতিমধ্যে একটি উদাহরণের অংশ ofthat there

মন্তব্য

  • সমস্ত 3 ইনপুট অবশ্যই মুদ্রণযোগ্য আসকি অক্ষরযুক্ত স্ট্রিং থাকতে হবে

  • ইনপুট 3 টি পৃথক স্ট্রিং বা 3 স্ট্রিংয়ের তালিকা হিসাবে দেওয়া যেতে পারে

  • ইনপুট অনুক্রমে হতে হবে S, a, bযদি না অন্যথায় উত্তর উল্লেখিত

  • aএকটি অংশ হিসাবে বিবেচনা করার জন্য b, উদাহরণস্বরূপ সমস্ত aঅবশ্যই উদাহরণের অংশ হতে হবেb

কিছু কর্নারের কেস ব্যাখ্যা করা হয়েছে

Input:  ["1222", "22", "122"]
Output: "12122"

উপরের উদাহরণে পরবর্তীটি 22প্রতিস্থাপন করা হয়। যদিও এর অংশটি উদাহরণের অংশ হিসাবে রয়েছে b, এর সম্পূর্ণতা উদাহরণের অংশ নয় b। পুরো উদাহরণটি এর aকোনও উদাহরণের অংশ না হওয়ায় bএটি প্রতিস্থাপন করা হয়েছে।

Input:  ["123 ", "23", "12"]
Output: "112 "

এই পরীক্ষার কেস উপরের মত একই ক্ষেত্রে চিত্রিত করে তবে সম্ভবত কিছুটা আরও পরিষ্কার ভাবে। আবার 2মাঝেরটি হ'ল উভয় অংশের উদাহরণের aপাশাপাশি একটি উদাহরণের অংশ b, যদিও সমস্ত aঅংশের অংশটি bএখনও এটি প্রতিস্থাপন করা হয়নি।

Input: ["Empty", "", "p"]
Output: "pEpmptpyp"

উপরের পরীক্ষার ক্ষেত্রে উভয়ের খালি স্ট্রিং এর আগে এবং পরে pপ্রতিস্থাপন করা হয়নি কারণ সম্পূর্ণরূপে উদাহরণের অংশ হিসাবে বিবেচনা করা যেতে পারে p

অন্যান্য পরীক্ষার কেস

Input:  ["aabbaa", "aa", "aabb"]
Output: "aabbaabb"

Input:  ["Hello World!", "o", " no"]
Output: "Hell no W norld!"

Input: ["Wow, oh wow, seriously WOW that's... wow", "wow", "WOW,"]
Output: "Wow, oh WOW,, seriously WOW that's... WOW,"

Input: ["Empty", "", "b"]
Output: "bEbmbpbtbyb"

Input: ["Empty", "b", "br"]
Output: "Empty"

Input: ["Empty", "pty", "Empty"]
Output: "Empty"

Input:  ["aabbaaa", "aa", "PP"]
Output: "PPbbPPa"

Input:  ["121212","1","121"]
Output: "121212"

এটি কোড-গল্ফের জন্য একটি প্রশ্ন তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর।


উত্তর:


6

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

{$^b;$^a;&{S:g/$a<?{$!=$/;all m:ex/$b/>>.&{$!.to>.to||.from>$!.from}}>/$b/}}

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

বেনামি কোড ব্লক যা ইনপুট কারিটেড লাগে, পছন্দ করে f(a,b)(s)

আমি নিশ্চিত যে এটি প্রশ্নের অভিপ্রায় সাথে মেলে। মূলত, এটি কেবলমাত্র প্রতিস্থাপন করে যদি অবস্থানটির aকোনও ওভারল্যাপিং ম্যাচের কোনওটির মধ্যে না থাকে b


2
তবে পরীক্ষাগুলিতে 2p রয়েছে: pEpmpptpypপরিবর্তেpEpmptpyp
নাহুয়েল ফিউইলুল

@ নাহুয়েল স্থির এটি অন্যান্য পরীক্ষার কেসগুলিও পরিচালনা করতে পারে (এবং আমার মনে হয় এটি করা প্রথমটি)
জো কিং

পরীক্ষার বিষয় নির্দিষ্ট কিছু ভান্ডারের চিন্তা পর দুর্ভাগ্যবশত @JoKing, আমি মনে করি শেষ টেস্ট কেস ব্যর্থ হবে [ 1222, 22, 122] -> 12122। আমি পরিষ্কার করে এবং ক্ষমা চেয়ে নিতে প্রশ্নটি আপডেট করেছি যে আমি আগে এই কোণার কেসটিকে আরও পরিষ্কার করে দেখিনি।
কুইন

আমার একই রকম সমস্যা ছিল s/(?!$b)$a/$b/g, যখন $ এ শূন্য হয় কারণ খালি স্ট্রিংয়ের পরে আমার প্রয়োজন pমেলে(?!p)(?<!p)(?!p)
নাহুয়েল ফিউইলুল

1
@ কিউইন ফিক্সড আমি ভাবি?
জো কিং

5

কাঠকয়লা , 55 বাইট

≔⁰εF⌕AθηF‹‹ιε⬤⌕Aθζ∨‹ικ›⁺ιLη⁺κLζ«≔⁺⁺ω✂θει¹ζω≔⁺ιLηε»⁺ω✂θε

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

≔⁰ε

সর্বশেষ প্রতিস্থাপিত ম্যাচটি কোথায় শেষ হয়েছে তা দেখানোর জন্য একটি পরিবর্তনশীল সূচনা করুন।

F⌕Aθη

এর সমস্ত ওভারল্যাপিং ম্যাচ aসন্ধান করুন S

F‹‹ιε

পরবর্তী ম্যাচটি যদি শেষ সফল প্রতিস্থাপনের ওভারল্যাপ না করে ...

⬤⌕Aθζ∨‹ικ›⁺ιLη⁺κLζ«

... এবং এটি কোন কপি ওভারল্যাপ bমধ্যে S...

≔⁺⁺ω✂θει¹ζω

... তারপরে শেষ ম্যাচ এবং bআউটপুট স্ট্রিংয়ের সাথে এই ম্যাচের মধ্যবর্তী স্তরটিকে সংযুক্ত করুন ...

≔⁺ιLηε

... এবং এই নতুন ম্যাচের শেষে শেষ ম্যাচের শেষের পরিবর্তনশীল আপডেট করুন।

»⁺ω✂θε

শেষে, কোনও অবশিষ্ট অংশ যুক্ত করুন Sএবং ফলাফলটি আউটপুট করুন।


1
@tsh ঠিক আছে এটি একটি সম্পূর্ণ পুনর্লিখন, আমি আশা করি এটি এখন সমস্ত সম্ভাব্য কেস কভার করবে ...
নীল

1
@ নীল আমি বিশ্বাস করি এটিও বৈধ!
কুইন

@ নীল আমি বিশ্বাস করি এটি এখন বৈধ।
tsh

@ কুইন ওহ, তাদের উত্তরগুলি বৈধ করার জন্য কি আমাকে প্রথম তৈরি করে? ঝরঝরে!
নীল

@ নীল আমি বিশ্বাস করি জোকিংয়েরও একটি বৈধ উত্তর আছে
কুইন

3

ওল্ফ্রাম ল্যাঙ্গুয়েজ (ম্যাথমেটিকা) , 43 122 96 88 বাইট

##2~StringReplacePart~Cases[#2~P~#,{a_,b_}/;And@@(#2<b||#>a&@@@P@##2)]&
P=StringPosition

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

+79: স্থির করা উচিত।

যেমন কল f[a,S,b]

                                                                      & (* a function which finds *)
                            #2~P~#,                                     (* the positions {start,end} where a occurs in S *)
                      Cases[       {a_,b_}/;And@@(#2<b||#>a&@@@     )]  (* which are not a subrange of any of the *)
                                                               P@##2    (* positions of b in S, *)
##2~StringReplacePart~                                                  (* and replaces those parts of the string with b *)
P=StringPosition

2
121212, 1, 121 এর জন্য ব্যর্থ - 121212 আউটপুট করা উচিত
ফ্যালকো

@ মতিনাত আমার কাছে স্থির মনে হচ্ছে!
কুইন

1

পার্ল 5 ( -lpF/;/), 41 বাইট

($_,$a,$b)=@F;s/(?<!(?=$b).)(?!$b)$a/$b/g

Tio


[ 1222, 22, 122] উচিত আউটপুট 12122কিন্তু পুলিশের আউটপুট11222
কুইন

ঠিক আছে তা বুঝতে পারিনি, সম্ভবত
সংশোধনযোগ্য

ওহ না, আসলে শেষ পরীক্ষার কেসে একটি খুব বেশি রয়েছে 12, আমি যে প্রশ্নটি করেছিলাম তা মূলত আমার যা ভাবা হয়েছিল তার চেয়ে অনেক কঠিন ছিল!
কুইন

@Quinn, এটা আমার মনে হচ্ছে যে এটা সামঞ্জস্যপূর্ণ নয়: 123, 23, 12-> 112কিন্তু 1212, 1, 121-> 1212(? কেন এটা করা উচিত হবে না 121212)
Nahuel Fouilleul

এটা মনে হচ্ছে যে স্পষ্ট করে দেওয়া উচিত তা হল কোন পদের Sসাথে কোন ম্যাচটি মিলবে না bবা কোন অংশটি পরের ম্যাচের
সন্ধানের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.