পত্র-প্রতিস্থাপন চ্যালেঞ্জ


17

ধারণাটি সহজ। 3 টি স্ট্রিং সরবরাহ করে আপনি একটি "ভিজ্যুয়ালাইজড" চিঠি-প্রতিস্থাপন তৈরি করতে হবে (ইনপুটটি কমা দ্বারা পৃথক, পৃথক ইনপুট বা অ্যারে হিসাবে থাকতে পারে)। প্রথম বিভাগটি হ'ল আপনি যে শব্দটি সংশোধন করতে চান তা এবং দ্বিতীয় বিভাগটি হ'ল আপনি যে অক্ষরগুলি প্রতিস্থাপন করতে চান এবং তৃতীয় বিভাগটি হ'ল বিভাগ 2 এর বর্ণগুলির প্রতিস্থাপন।

উদাহরণ স্বরূপ:

|    | Input                       | Starting Word | Output      |
|----|-----------------------------|---------------|-------------|
| #1 | Hello world -wo -ld +Ea +th | Hello world   | Hello Earth |
| #2 | Hello World -wo -ld +Ea +th | Hello World   | Hello Worth |
| #3 | Hello -llo +y               | Hello         | Hey         |
| #4 | Red -R -d +Gr +en           | Red           | Green       |
| #5 | mississippi -is -i +lz +p   | mississippi   | mlzslzspppp |
| #6 | Football -o -a +a +i        | Football      | Fiitbill    |
| #7 | mississippi -is -i +iz +p   | mississippi   | mpzspzspppp |

ব্যাখ্যা

প্রতিস্থাপনগুলি তাদের নিজ নিজ জুটির সাথে ধাপে ধাপে সম্পন্ন করতে হবে। mississippi -is -i +iz +pআউটপুট দেওয়ার জন্য একটি ইনপুট সহ এখানে একটি চিত্র রয়েছে mpzspzsppp( #7উপরে উদাহরণ দেখুন )

| Step  | Input                         | Output        |
|------ |---------------------------    |-------------  |
| #1    | mississippi -is -i +iz +p     |               |
| #2    | mississippi -is +iz           | mizsizsippi   |
| #3    | mizsizsippi -i +p             | mpzspzspppp   |

বিধি

  • ইনপুটগুলি সর্বদা এই ক্রমে থাকে <starting_string> <list_of_letters_to_replace> <replacement_letters>
  • প্রতিস্থাপন এবং প্রতিস্থাপন গোষ্ঠীগুলির চিঠিগুলি কখনই মিশ্রিত হবে না (যেমন: কখনও হবে না -a +i -e +o)।
  • প্রতিস্থাপনের জন্য অক্ষরগুলি সর্বদা উপসর্গযুক্ত থাকে -এবং প্রতিস্থাপন বর্ণগুলি সর্বদা প্রিফিক্স থাকে+ । (উপসর্গ বাধ্যতামূলক)
  • প্রতিস্থাপনের জন্য একাধিক চিঠিপত্র থাকতে পারে, সুতরাং আপনার উপসর্গটি দেখতে হবে।
  • প্রতিস্থাপনের জন্য চিঠি গোষ্ঠীর পরিমাণ এবং প্রতিস্থাপন লেটার গ্রুপগুলির পরিমাণ সর্বদা সমান (যেমন: কখনই হবে না -a -e +i) ধরে নিন
  • প্রতিস্থাপনগুলি কেস-সংবেদনশীল (উদাহরণ #1এবং দেখুন #2)।
  • প্রতিস্থাপনগুলি ইনপুটটিতে যেভাবে দেওয়া হয়েছিল সেভাবে করা হয়।
  • চিঠি প্রতিস্থাপনগুলি অন্য প্রতিস্থাপনের সাথে প্রতিস্থাপন করা যেতে পারে। উদাহরণ দেখুন #6
  • প্রথম বিভাগটি (শুরুর শব্দ) কখনই অন্তর্ভুক্ত -বা +অক্ষর থাকবে না
  • এটি কোড-গল্ফ তাই সংক্ষিপ্ততম বাইট জয়।

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

var QUESTION_ID=96473,OVERRIDE_USER=38505;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


1
বিধি 2 এবং 5 দেওয়া, আপনার সত্যিকারের উপসর্গটি দেখার দরকার নেই। এন ইনপুটগুলির সাথে ইনপুট 0 হ'ল বেস স্ট্রিং, ইনপুট 1 থেকে ইনট (এন / 2) ইনপুট ( letter to replaceপ্রিফিক্স সহ -) এবং ইনপুট ইনট (এন / 2) +1 থেকে এন -1 replacement+
হ'ল

@ edc65 ১০০% সত্য, যদিও চ্যালেঞ্জটি উপসর্গটি তৈরি করার জন্য তৈরি করা হয়েছিল (এবং আমি কিছু অদ্ভুত ব্যাখ্যা দিতে পারি যে আমি একজন বিদেশী যিনি তাদের উপসর্গ ব্যতিরেকে চিঠি প্রতিস্থাপন প্রক্রিয়া করতে পারবেন না) তবে বাস্তবে, এটি থামাতে কেবল আরও একটি বাধা রয়েছে খুব তুচ্ছ হওয়া - যদিও বর্তমান উত্তরগুলির দিকে তাকানো (সমস্ত উপায় দ্বারা দুর্দান্ত) এটি কোনও জটিল বাধা ছিল না। মজাদার ঘটনাটিও, এই চ্যালেঞ্জের পিছনে ধারণাটি আমার বন্ধু স্কাইপে চ্যাটে প্রকাশ করেছিল। তিনি একটি শব্দ ( gello) বানান করতেন এবং তারপরে আমাকে চিঠিটি প্রতিস্থাপন ( -g +h) পাঠান কারণ তিনি প্রেরণের পরিবর্তে বিরক্ত হতে চেয়েছিলেন hello*
ʰᵈˑ

1
ইনপুটগুলি সর্বদা এই ক্রমে থাকে কেন এত বাধা হয়?
লুইস মেন্ডো

@ লুইস মেন্ডো আমি অনুমান করি এটি সত্যিই গুরুত্বপূর্ণ নয় - তবে এটি আমার বন্ধু এবং আমি এটি ফর্ম্যাট করেছিলাম, তবে যেহেতু উত্তরগুলি এই প্রয়োজনে পোস্ট করা হয়েছে, তাই আমি সত্যিই কোনও নিয়ম পরিবর্তন করতে পারি না। এটি স্যান্ডবক্সে প্রশ্ন করা হয়নি, তাই আমি এটিকে নেতিবাচক হিসাবে ভাবি নি।
ʰᵈˑ

1
@udioica নিখুঁতভাবে সঠিক এবং এটি "প্রতিস্থাপনগুলি কেস-সংবেদনশীল" বিধি সমর্থন করে। এটি প্রয়োগ করা দেখতে জাভাস্ক্রিপ্ট উত্তরের স্নিপেট চালান। (# 1 W orld` বনাম # 2 ওয়াট orld)
edc65

উত্তর:


6

05 এ বি 1 ই , 15 17 বাইট

IIð¡€áIð¡€á‚øvy`:

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

ব্যাখ্যা

I                   # read starting string
 I                  # read letters to be replaced
  ð¡                # split on space
    ۇ              # and remove "-"
      I             # read replacement letters
       ð¡           # split on space
         ۇ         # and remove "+"
           ‚ø       # zip to produce pairs of [letters to replace, replacement letters]
             vy`:   # for each pair, replace in starting string

বা কম কঠোর ইনপুট ফর্ম্যাট সহ

vy`:

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


6

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

f=(s,n=1,l=s.split(/ \W/))=>(r=l[n+l.length/2|0])?f(s.split(l[n]).join(r),n+1):l[0]

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


5

পাইকে, 13 11 বাইট

z[zdcmt)[.:

এখানে চেষ্টা করুন!

z           - input()
 [zdcmt)    - def func():
  zdc       -  input().split(" ")
     mt     -  map(>[1:], ^)
            - func()
        [   - func()
         .: - translate()

বা 2 বাইট যদি আলাদা ইনপুট ফর্ম্যাটে থাকে:

.:

এখানে চেষ্টা করুন!


কর্মক্ষেত্রে catbus.co.uk- কে অবরুদ্ধ করা হয়েছে আপনি একটি বিকল্প পরীক্ষা স্যুট লিঙ্ক করতে সক্ষম হন দয়া করে?
ʰᵈˑ

2
@ ʰᵈˑ আমি বিশ্বাস করি না যে আপনার (স্বেচ্ছাসেবী) কাজের ফায়ারওয়াল সেটিংসের সাথে সামঞ্জস্য করা যুক্তিসঙ্গত।
orlp

1
@ অরলপ - আমি সম্মতি জানাই, এটি ছিটে তবে আমি ফায়ারওয়াল সেটিংস সেট করি না। আমি কেবল এটি পরীক্ষা করে দেখতে চেয়েছিলাম
ʰᵈˑ

2
@ এইচডি আপনি পাইথ ডাউনলোড করতে পারবেন github.com/muddyfish/pyke
ব্লু

4

পার্ল, 58 বাইট

57 বাইট কোড +1 এর জন্য -p

এক লাইনে প্রথম আইটেমের প্রয়োজন, তারপরে পরেরগুলিতে প্রতিস্থাপন। @ দাদাকে ধন্যবাদ, যিনি 4 বাইট হ্রাস করতে সাহায্য করার জন্য একটি ভিন্ন পদ্ধতির সাথে এসেছিলেন!

$a=<>;1while$a=~s%-(\S*)(.*?)\+(\S*)%"s/$1/$3/g;q{$2}"%ee

ব্যবহার

perl -pe '$a=<>;1while$a=~s%-(\S*)(.*?)\+(\S*)%"s/$1/$3/g;q{$2}"%ee' <<< 'Football
-o -a +a +i'
Fiitbill
perl -pe '$a=<>;1while$a=~s%-(\S*)(.*?)\+(\S*)%"s/$1/$3/g;q{$2}"%ee' <<< 'mississippi
-is -i +iz +p'
mpzspzspppp
perl -pe '$a=<>;1while$a=~s%-(\S*)(.*?)\+(\S*)%"s/$1/$3/g;q{$2}"%ee' <<< 'mississippi
-ippi -i -mess +ee +e +tenn'
tennessee

4 বাইট দীর্ঘ, আছে perl -pE 's/(.*?) -(\S*)(.*?)\+(\S*)/"(\$1=~s%$2%$4%gr).\"$3\""/ee&&redo'। আমি এটির চেয়ে আরও ছোট পাওয়ার জন্য পরিচালনা করতে পারি না তবে আপনি এটি করতে পারেন :)
দাদা

1
Gotcha! 58 বাইট: perl -pE '$a=<>;1while$a=~s%-(\S*)(.*?)\+(\S*)%"s/$1/$3/g;q{$2}"%ee'। (এক লাইনে স্ট্রিং নিয়ে যায় এবং পরের লাইনে "পতাকাগুলি")
দাদা

1
অসাধারণ! আমি কম্পিউটারে নেই তবে কালকে আপডেট করব! ধন্যবাদ!
ডম হেস্টিংস

আপনি কি q {} কাছাকাছি $ 2 অপসারণ সম্পর্কে নিশ্চিত? 3 - এবং 3 + সুইচ থাকা অবস্থায় এটি কি ব্যর্থ হবে না? (আমি এটি এখনই পরীক্ষা করতে পারছি না, তাই আপনি সম্ভবত ঠিক ছিলেন তাই এটি সরিয়ে ফেলুন;))
দাদা

@ দাদা আহহ, আপনি কেন এটি যুক্ত করলেন তা নিয়ে আমি অবাক হয়েছি, আমি পরীক্ষার স্যুটে সমস্ত কেস পরীক্ষা করেছি, তবে 3 প্রতিস্থাপনের জন্য 3 নিয়ে ভাবি নি ...
ডম হেস্টিংস


3

পিএইচপি, 98 97 বাইট

for($s=$argv[$i=1];$v=$argv[++$i];)$r[$v[0]>'+'][]=substr($v,1);echo str_replace($r[1],$r[0],$s);

এই চ্যালেঞ্জটি str_replace এর সঠিক আচরণের বর্ণনা দেয় তাই পিএইচপি-র জন্য এটি প্রতিস্থাপনের অ্যারেগুলি তৈরির সমস্ত বিষয়। আমি এটি কেবল একটি "সাবস্ট্রিং" ব্যবহার করে করার চেষ্টা করেছি তবে এটি সেরা সমাধান হতে পারে না। ব্যবহার করুন:

php -r "for($s=$argv[$i=1];$v=$argv[++$i];)$r[$v[0]>'+'][]=substr($v,1);echo str_replace($r[1],$r[0],$s);" "mississippi" "-is" "-i" "+iz" "+p"

সম্পাদনা করুন: 1 বাইট টিটাসকে ধন্যবাদ সংরক্ষণ করেছে


এটি সম্ভবত সংক্ষিপ্ততম জিনিস। তবে $v[0]>'+'এক বাইট ওভার সাশ্রয় করে $v[0]=='-'ord($v)&4পরিবর্তে আপনি ব্যবহার করতে পারেন ।
তিতাস

2

জাভা 7, 153 133 বাইট

String c(String[]a){String r=a[0],z[]=a[1].split(" ?-");for(int i=0;i<z.length;r=r.replace(z[i],a[2].split(" ?[+]")[i++]));return r;}

অবরুদ্ধ এবং পরীক্ষার কোড:

এখানে চেষ্টা করুন।

class M{
  static String c(String[] a){
    String r = a[0],
           z[] = a[1].split(" ?-");
    for(int i = 0; i < z.length; r = r.replace(z[i], a[2].split(" ?[+]")[i++]));
    return r;
  }

  public static void main(String[] a){
    System.out.println(c(new String[]{ "Hello world", "-wo -ld", "+Ea +th" }));
    System.out.println(c(new String[]{ "Hello World", "-wo -ld", "+Ea +th" }));
    System.out.println(c(new String[]{ "Hello", "-llo", "+y" }));
    System.out.println(c(new String[]{ "Red", "-R -d", "+Gr +en" }));
    System.out.println(c(new String[]{ "mississippi", "-is -i", "+lz +p" }));
    System.out.println(c(new String[]{ "Football", "-o -a", "+a +i" }));
    System.out.println(c(new String[]{ "mississippi", "-is -i", "+iz +p" }));
  }
}

আউটপুট:

Hello Earth
Hello Worth
Hey
Green
mlzslzspppp
Fiitbill
mpzspzspppp

এই ইনপুট জন্য কাজ করে new String[]{'Rom Ro. Rom", "-Ro." , "+No."}? কেবল এমন কিছু লেখা যা (আশাবাদী) একটি ভুল রেজেক্সের সাথে মেলে।
রোমান গ্রাফ

@ রোমানগ্রাফ হ্যাঁ, কাজ করে এবং আউটপুট দেয় Rom No. Rom। বিটিডব্লিউ, আপনি Try it here.পোস্টের লিঙ্কটি ক্লিক করে নিজে চেষ্টা করতে পারেন এবং তারপরে এটি কাঁটাচামচ করতে পারেন। :)
কেভিন ক্রুইজসেন

আমি জানি তবে আমি বর্তমানে আমার মোবাইলে রয়েছি। :(
রোমান গ্রাফ


2

Vim, 25 বাইট

qq+dE+r-PdiW:1s<C-R>"-g<CR>@qq@q

এই বিন্যাসে ইনপুট ধরে:

mississippi
-is -i
+lz +p
  • +dE+r-PdiW: সংযুক্ত করে -এবং +একক নিবন্ধে, এ +রূপান্তরিত হওয়ার সাথে-
  • :1s<C-R>"-g: রেজিস্টারটি কোড স্নিপেট হিসাবে ব্যবহার করে, সরাসরি :sকমান্ডের -মধ্যে বিভক্তকারী হিসাবে .োকানো হয়।


2

আর, 98 94 বাইট

সম্পাদনা: @ আর্টারনবুলকে ধন্যবাদ 4 টি বাইট সংরক্ষিত

i=scan(,"");s=i[1];i=gsub("\\+|-","",i[-1]);l=length(i)/2;for(j in 1:l)s=gsub(i[j],i[l+j],s);s

অবহেলিত এবং পরীক্ষার মামলা

কারণ scan(স্টিডিনের ইনপুটটি পড়ে) আর-ফিডলে সঠিকভাবে কাজ করে না আমি প্রোগ্রামটি এর পরিবর্তে কোনও ফাংশনে মোড়কে প্রদর্শন করি। নোট করুন যে ফাংশনটি একটি ভেক্টরকে একটি ইনপুট হিসাবে গ্রহণ করে এবং যেমন: দ্বারা চালানো যেতে পারে f(c("Hello world", "-wo", "-ld", "+Ea", "+th"))। উপরের গোফলেড প্রোগ্রাম স্ট্যান্ডিনের মাধ্যমে টাইপ করে ব্যবহারকারীকে ইনপুট দেওয়ার অনুরোধ জানাবে"Hello world" -wo -ld -Ea +th কনসোলে করলে একই ফলাফল পাওয়া যাবে।

কোডটি আর-ফিডেলে চালান

f=function(i){
    s=i[1]                                   # Separate first element
    i=gsub("\\+|-","",i[-1])                 # Remove + and - from all elements except first, store as vector i
    l=length(i)/2                            # calculate the length of the vector i (should always be even)
    for(j in 1:l)s=gsub(i[j],i[l+j],s)       # iteratively match element j in i and substitute with element l+j in i
    s                                        # print to stdout
}

আপনি একটি পরীক্ষা স্যুট লিঙ্ক প্রদান করতে পারেন, দয়া করে?
ʰᵈˑ

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

আপনি কি "ইনপুট স্ট্রিং এর চারপাশে ব্যবহার করতে হবে তাই এই উত্তরটি কি বৈধ ?
rturnbull

@ আর্টারনবুল আমি দেখছি না কেন। প্রতিটি এন্ট্রি কোট দিয়ে মোড়ানো এবং এন্টার টিপলে সমান ফলাফল পাওয়া যায় (যেমন "Hello world" => enter => "-wo" => enter => "-ld" => enter => "+Ea" => enter =>"+th":) সাধারণত যেভাবে স্ট্রিংগুলি পঠিত হয়।
বিলিউব

1
হ্যাঁ এটি সত্যিই ওপি পর্যন্ত! আমি ব্যক্তিগতভাবে আপনার উত্তরটি যেমন-তেমন পছন্দ করি তবে আমি উদ্বেগ নিয়েছিলাম যে এটি অবৈধ। অন্যান্য ভাষার উত্তরগুলির জন্য তাকানো দেখে মনে হচ্ছে উদ্ধৃতিগুলি বেশ গ্রহণযোগ্য। আমার আপনার দৃষ্টি আকর্ষণ করার সময়, আমি মনে করি আপনি পরবর্তী রেফারেন্সগুলিতে পরিবর্তন l=length(i)করে l=length(i)/2এবং আপডেট করে 4 বাইট বন্ধ করতে পারেন l
rturnbull

2

হাস্কেল, 85 78 বাইট

import Data.Lists
g=map tail.words
a#b=foldl(flip$uncurry replace)a.zip(g b).g

ব্যবহারের উদাহরণ: ("mississippi" # "-is -i") "+lz +p"-> "mlzslzspppp"

কিভাবে এটা কাজ করে:

g=map tail.words              -- helper function that splits a string into a
                              -- list of words (at spaces) and drops the first
                              -- char of each word

                zip(g b).g    -- make pairs of strings to be replaced and its
                              -- replacement
foldl(flip$uncurry replace)a  -- execute each replacement, starting with the
                              -- original string
                              -- -> "flip" flips the arguments of "uncurry replace"
                              --           i.e. string before pair of replacements
                              -- "uncurry" turns a function that expects two
                              --           lists into one that expects a list of pairs

সম্পাদনা করুন: @ ব্ল্যাকক্যাপ সংরক্ষণ করতে 6 বাইট পেয়েছিল এবং আমি নিজেই অন্য একটি পেয়েছি।


6 বাইট: import Data.Lists;a#b=foldl(uncurry replaceফ্লিপ)a.zip(g b).g;g=map tail.words
ব্ল্যাকক্যাপ

@ ব্ল্যাকক্যাপ: দুর্দান্ত, ধন্যবাদ! flipইনফিক্স তৈরি করার দরকার নেই । স্ট্যান্ডার্ড উপসর্গটি একটি বাইট ছোট।
নিমি

1

পাইথন 3, 93 বাইট

def f(s):
  s,m,p=s
  for n,o in zip(m.split(),p.split()):s=s.replace(n[1:],o[1:])
  return s

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

ইনপুটটি স্ট্রিং সহ একটি তালিকা, প্রতিস্থাপন স্ট্রিংগুলি পৃথক পৃথক স্থান।

উদাহরণ ইনপুট: ['mississippi','-is -i','+iz +p']


আপনি কি কোনও পরীক্ষার স্যুইট লিঙ্ক যুক্ত করতে সক্ষম হবেন?
ʰᵈˑ

লিঙ্ক সরবরাহ করা হয়েছে এবং আকারও হ্রাস পেয়েছে।
গ্যাবার ফেকেট

1

পাওয়ারশেল ভি 2 +, 90 বাইট

param($a,$b,$c)-split$b|%{$a=$a-creplace($_-replace'-'),((-split$c)[$i++]-replace'\+')};$a

তিন আর্গুমেন্ট হিসাবে ইনপুট লাগে, সঙ্গে -এবং +স্ট্রিং স্থান বিভাজিত। একটি সঞ্চালন -splitকরে $b( -splitযখন অবিচ্ছিন্ন ফ্যাশনে অভিনয় করা হোয়াইটস্পেসে বিভক্ত হয়), তারপরে |%{...}প্রতিটিটির মধ্য দিয়ে লুপ হয়। প্রতিটি পুনরাবৃত্তি আমরা অপসারণ করি -, পরবর্তী [$i++]প্রতিস্থাপনের স্ট্রিংটি সন্ধান করে এবং এটি +থেকে সরিয়ে ফেলা এবং -creplace(কেস-সংবেদনশীল প্রতিস্থাপন) ব্যবহার করে স্লাইস এবং ডাইস $aএবং এটিকে আবার জমা করে রাখি $a। তারপরে, $aপাইপলাইনে রেখে দেওয়া হয় এবং আউটপুট অন্তর্ভুক্ত থাকে।

PS C:\Tools\Scripts\golfing> .\letter-replacement-challenge.ps1 'mississippi' '-is -i' '+iz +p'
mpzspzspppp

PS C:\Tools\Scripts\golfing> .\letter-replacement-challenge.ps1 'Hello world' '-wo -ld' '+Ea +th'
Hello Earth

PS C:\Tools\Scripts\golfing> .\letter-replacement-challenge.ps1 'Hello World' '-wo -ld' '+Ea +th'
Hello Worth

1

পিএইচপি, 106 বাইট

for($s=($v=$argv)[$i=1];$i++<$n=$argc/2;)$s=str_replace(substr($v[$i],1),substr($v[$n+$i-1],1),$s);echo$s;

সরাসরি এগিয়ে যোগাযোগ সাথে চালাও php -r '<code> <arguments>

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