पत्र-प्रतिस्थापन की चुनौती


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 को देखते हुए, आपको वास्तव में उपसर्ग को देखने की आवश्यकता नहीं है। N निविष्टियों के साथ, इनपुट 0 आधार स्ट्रिंग है, इनपुट 1 से int (n / 2) हैं letter to replace(उपसर्ग के साथ -) और इनपुट int (n / 2) +1 से n-1 हैं replacement(उपसर्ग के साथ +)
edc65

@ edc65 100% सच है, हालाँकि चुनौती को उपसर्ग के लिए डिज़ाइन किया गया था (और मैं कुछ अजीब व्याख्या कर सकता था कि मैं एक विदेशी हूँ जो अपने उपसर्ग के बिना पत्र प्रतिस्थापन को संसाधित नहीं कर सकता) लेकिन वास्तव में, इसे रोकने के लिए सिर्फ एक और बाधा है बहुत अधिक तुच्छ होने के बावजूद - हालांकि वर्तमान उत्तरों (सभी तरह से महान हैं) को देखते हुए यह एक जटिल बाधा नहीं थी। मजेदार तथ्य यह है कि इस चुनौती के पीछे का विचार मेरे दोस्त से स्काइप चैट में लिया गया था। वह एक शब्द ( gello) का गलत उच्चारण करेगा , और फिर मुझे पत्र प्रतिस्थापन ( -g +h) भेज देगा क्योंकि वह भेजने के बजाय परेशान होना चाहता था hello*

1
इनपुट्स हमेशा इस क्रम में होते हैं कि इतना प्रतिबंध क्यों?
लुइस मेंडो

@LuisMendo मुझे लगता है कि यह वास्तव में मायने नहीं रखता है - लेकिन यह मेरे मित्र का तरीका है और मैंने इसे स्वरूपित किया है, लेकिन चूंकि उत्तर इस आवश्यकता पर पोस्ट किए गए हैं, इसलिए मैं वास्तव में नियम में बदलाव नहीं कर सकता। सैंडबॉक्स पर यह सवाल नहीं किया गया था, इसलिए मैंने इसे नकारात्मक नहीं माना।
ʰᵈˑ

1
@ वर्जिनिका पूरी तरह से सही है और यह वास्तव में "रिप्लेसमेंट केस-सेंसिटिव" नियम का समर्थन करती है। इसे लागू करने के लिए जावास्क्रिप्ट उत्तर में स्निपेट चलाएँ। (# 1 w orld` बनाम # 2 W orld)
edc65

जवाबों:


6

05AB1E , 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

जावास्क्रिप्ट (ईएस 6), 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
@orlp - मैं सहमत हूँ, यह बकवास है। लेकिन मैं फ़ायरवॉल सेटिंग्स सेट नहीं करता। मैं अभी इसका परीक्षण करना चाहता था
at'१६

2
@ आप Pyke को github.com/muddyfish/pyke
Blue

4

पर्ल, 58 बाइट्स

57 बाइट्स कोड + 1 के लिए -p

एक पंक्ति पर पहले आइटम की आवश्यकता होती है, फिर अगले पर प्रतिस्थापन की। @Dada के लिए बड़ा धन्यवाद, जो 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
पकड़ लिया! 58 बाइट्स: perl -pE '$a=<>;1while$a=~s%-(\S*)(.*?)\+(\S*)%"s/$1/$3/g;q{$2}"%ee'। (एक पंक्ति पर स्ट्रिंग लेता है, और अगली पंक्ति पर "झंडे")
दादा

1
बहुत बढ़िया! मैं कंप्यूटर पर नहीं हूँ, लेकिन मैं कल अपडेट करूँगा! धन्यवाद!
डोम हेस्टिंग्स

क्या आप $ 2 के आसपास q {} को हटाने के बारे में सुनिश्चित हैं? क्या यह विफल नहीं होगा जब 3 - और 3 + स्विच हों? (मैं अब इसका परीक्षण नहीं कर सकता, इसलिए शायद आप सही थे इसलिए इसे हटा दें;))
दादा

@ दादा आह, मुझे आश्चर्य था कि आपने इसे क्यों जोड़ा, मैंने टेस्ट सूट में सभी मामलों का परीक्षण किया, लेकिन 3 प्रतिस्थापन के लिए एक 3 के बारे में नहीं सोचा ...
डोम हेस्टिंग्स


3

PHP, 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 के लिए यह प्रतिस्थापन के सरणियों को बनाने के बारे में है। मैंने इसे केवल एक "प्रतिस्थापन" का उपयोग करने की कोशिश की, लेकिन यह सबसे अच्छा समाधान नहीं हो सकता है। उपयोग की तरह:

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;}

Ungolfed और परीक्षण कोड:

इसे यहाँ आज़माएँ।

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."}? बस ऐसा कुछ लिखना जो (उम्मीद है) गलत रीजैक्स से मेल खाता हो।
रोमन ग्रैफ़

@ RomanGräf हां, काम करता है और आउटपुट Rom No. Rom। Btw, आप Try it here.पोस्ट में लिंक पर क्लिक करके इसे स्वयं आज़मा सकते हैं , और फिर कांटा कर सकते हैं। :)
केविन क्रूज़सेन

मुझे पता है लेकिन मैं इस समय अपने मोबाइल पर हूं। :(
रोमन ग्रैफ़


2

विम, 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 बाइट्स

संपादित करें: @rturnbull के लिए 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 कंसोल में करने पर समान परिणाम प्राप्त होगा।

R-fiddle पर कोड रन करें

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
}

क्या आप एक परीक्षण सूट लिंक भी प्रदान कर सकते हैं, कृपया?
ʰᵈˑ

@ @ ने आर-फिडल टेस्ट सूट जोड़ा। ध्यान दें कि परीक्षण सूट स्टड से इनपुट पढ़ने के बजाय एक फ़ंक्शन का उपयोग करता है जैसा कि संपादित उत्तर में समझाया गया है।
बिलीवोब

क्या यह उत्तर मान्य है, क्योंकि आपको "इनपुट स्ट्रिंग के आसपास उपयोग करना है ?
21

@rturnbull मैं नहीं देख क्यों नहीं है। उद्धरण के साथ हर प्रविष्टि को लपेटने और प्रवेश को दबाने के बराबर परिणाम होगा (जैसे:) "Hello world" => enter => "-wo" => enter => "-ld" => enter => "+Ea" => enter =>"+th"जो आमतौर पर कैसे भी तार पढ़े जाते हैं।
बिलीवोब

1
हाँ, यह वास्तव में ओपी तक है! मुझे व्यक्तिगत रूप से आपका उत्तर पसंद है, लेकिन मुझे चिंता थी कि यह अमान्य हो सकता है। अन्य भाषाओं के जवाबों को देखते हुए ऐसा लगता है जैसे उद्धरण बहुत स्वीकार्य हैं। जबकि मेरा ध्यान है, मुझे लगता है कि आप 4 बाइट्स को बदल l=length(i)सकते हैं l=length(i)/2और बाद के संदर्भों को बदलकर l
21

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

संपादित करें: @BlackCap को बचाने के लिए 6 बाइट्स मिले और मैं खुद एक और।


6 बाइट्स: import Data.Lists;a#b=foldl(uncurry replaceफ्लिप)a.zip(g b).g;g=map tail.words
ब्लैककैप

@ ब्लेकैप: अच्छा, धन्यवाद! flipइन्फिक्स बनाने की आवश्यकता नहीं है । मानक उपसर्ग एक बाइट कम है।
nimi

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

PowerShell v2 +, 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

PHP, 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>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.