দুনিয়াটি মিররের মতো: হাসি এবং এটি ভাল হবে ɐɔʞ


13

ইনপুট:

কেবলমাত্র নিম্নলিখিত অক্ষরগুলি সমন্বিত একটি স্ট্রিং:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?!(শেষে স্থান) এবং দুটি বিশেষ অক্ষর ( _এবং |)

আউটপুট:

মিরর টেক্সট অবস্থান (গুলি) উপর ভিত্তি করে _এবং |
_অনুভূমিকভাবে আয়না এবং |উল্লম্বভাবে আয়না।

মিররিংয়ের প্রক্রিয়া

  • প্রথমটি _সেই স্ট্রিংয়ের মিররিংয়ের সূচনাটি নির্দেশ করে, দ্বিতীয়টি _শেষ।
  • যদি কেবল একজন _উপস্থিত থাকে তবে আপনি স্ট্রিংয়ের সমাপ্তি অবধি চালিয়ে যেতে পারেন।
  • যদি আরও দুটি _উপস্থিত থাকে তবে একই প্রক্রিয়া পুনরাবৃত্তি করে।
  • |স্ট্রিংটিতে কেবল একটি থাকতে পারে এবং এটি প্রথম সাবস্ট্রিংকে বিপরীত করে এবং দ্বিতীয় স্ট্রিংটিকে সরিয়ে দেয়।

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?!(শেষে স্থানটি) রূপান্তরিত হবে ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡(শেষে স্থানটি) যখন এটি দ্বারা মিরর করা হবে _(ইউনিকোড মানগুলির জন্য লিঙ্কটি ক্লিক করুন - ইউনিকোড ভি 8.0 + প্রয়োজন)।

উদাহরণ 1 ইনপুট: _Will I be mirrored?!
আউটপুট 1: Mıll I qǝ ɯıɹɹoɹǝp¿¡

উদাহরণ 2 ইনপুট: Wi_ll I be mi_rrored?!
আউটপুট 2: Will I qǝ ɯırrored?!


যখন এটি মিরর করা হয় তখন |আমরা কেবল 0 থেকে সূচক-থেকে- এর বিপরীতে বিপরীত হই |

উদাহরণ 1 ইনপুট: Will I be mirror|ed?!
আউটপুট 1: Will I be mirrorrorrim eb I lliW

উভয় আয়না ( _এবং |) স্ট্রিংয়ে উপস্থিত থাকতে পারে।


সাধারণ নিয়ম:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি, সম্পূর্ণ প্রোগ্রামগুলি সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজনে একটি ব্যাখ্যা যোগ করুন।

পরীক্ষার কেস:

_Will I be mirrored?!                          ->   Mıll I qǝ ɯıɹɹoɹǝp¿¡
Wi_ll I be mi_rrored?!                         ->   Will I qǝ ɯırrored?!
Will I be mirror|ed?!                          ->   Will I be mirrorrorrim eb I lliW
This_ is a test_ cont_aining bo|t_h mirrors.   ->   This ıs ɐ ʇǝsʇ contɐıuıuɓ qooq ɓuıuıɐtnoc ʇsǝʇ ɐ sı sihT
0_1_2_3_4_5|_6_7_8_9                           ->   0⇂2Ɛ4ϛϛ4Ɛ2⇂0

2
বৈশিষ্ট্যটির অনুরোধ - শিরোনামটি "দুনিয়াটি মিররের মতো: হাসি এবং এটিটি হবে" ;-)
অ্যাডমবর্কবার্ক

@ টিমমিড ᗡouǝ;)
কেভিন ক্রুইজসেন

@ টিমমিড আমার দেশে আয়নাগুলি এইভাবে কাজ করে: "হাসি ɘlimɘ", "হাসি sɯı ן ǝ" নয় :) শিরোনামটি হওয়া উচিত "দুনিয়া মিররের মতো: হাসি এবং এটি ফিরে আসবে"
টিমটাম

1
প্রথম লাইনে আপনার সম্ভবত উল্লেখ করা উচিত যে ফাঁকা স্থানগুলি ইনপুটটিতেও উপস্থিত হতে পারে।
মার্টিন এন্ডার

উত্তর:


3

পাইথ - 174 বাইট

বেস কম্প্রেশন বা ইউনিকোডের কিছু কিউজের সাহায্যে প্রোলি সঞ্চয় করতে পারে (এটি কেবল 119 টি অক্ষর)

u?qH\_&=hZG+G@@c2K+s+rB;1UT".?! ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡ "ZxKH?}\|zs_Bhcz\|zk

টেস্ট স্যুট


2

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

s=>s[r='replace'](/_.*?(_|$)/g,m=>m[r](/./g,c=>'| ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡𐐒'['| abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?!B'.indexOf(c)]||''))[r](/(.*)\|.*/,(m,t)=>t+[...t].reverse().join``)

পরীক্ষা

var solution =

s=>
  s[r='replace'](/_.*?(_|$)/g,m=>
    m[r](/./g,c=>
      '| ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡𐐒'
        ['| abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?!B'
          .indexOf(c)]||''
    )
  )
  [r](/(.*)\|.*/,(m,t)=>t+[...t].reverse().join``)

var testCases = [
  '_Will I be mirrored?!',
  'Wi_ll I be mi_rrored?!',
  'Will I be mirror|ed?!',
  'This_ is a test_ cont_aining bo|t_h mirrors.',
  '0_1_2_3_4_5|_6_7_8_9'
];
tests.textContent = testCases.map((c) => c + '   =>   ' + solution(c)).join('\n');
<input type="text" oninput="result.textContent=solution(this.value)" value="This_ is a test_ cont_aining bo|t_h mirrors." /><pre id="result"></pre><pre id="tests"></pre>


2

পার্ল 243

242 + 1 -p এর জন্য

$h=(split'\|',$_)[0];$_=$h.reverse$h if($_=~/\|/);for$b(split'_',$_){$b=~y/A-Za-z0-9.?!/ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡/ if($f);$\.=$b;$f=!$f;}$_='';

Ungolfed:

$reverse = (split('\|', $_))[0];
$_ = $reverse . reverse($reverse) if($_=~/\|/);

for $block (split '_', $_) {
    $block =~ y/A-Za-z0-9.?!/ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡/ if($flip);
    $\.=$block;
    $flip=!$flip;
}
$_='';

উদাহরণ:

$ perl -p mirror.pl <<<'Will I be mirror|ed?!'
Will I be mirrorrorrim eb I lliW

আমি এই ক্ষেত্রে 99% নিশ্চিত, তবে বেশিরভাগ উর্ধ্বতন চরিত্রগুলি আমার সিস্টেমে সঠিকভাবে প্রদর্শিত হয় না। আমি, চরিত্র একটি ভিন্ন পরিসীমা ব্যবহার যেমন করে এটি পরীক্ষিত .?! -> %^&পরিবর্তে .?! -> ˙¿¡


2

আর, 362 362 342 339 বাইট

সম্পাদনা 1: আমি আমার আসলটিতে একটি বাগ খুঁজে পেয়েছি ( _ইনপুটটিতে না থাকলে ব্যর্থ হয়েছিল ), এটি ঠিক করেছিলাম, আরও কিছুটা গল্ফ করেছিলেন এবং আমি যেখানে শুরু করেছি 362 তে ফিরে এসেছি!

সম্পাদনা 2: প্রতিস্থাপন করে 20 বাই বাই গল্ফ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?! "করাpaste(c(letters,LETTERS,0:9,".?! "),collapse="")

3 সম্পাদনা করুন: কিছু অতিরিক্ত সাদা স্থান অপসারণ করা আরও 3 বাইট বন্ধ করে দেয়।

p=strsplit
l=length
i=p(readline(),"_")[[1]]
if(l(i)-1)i[v]=chartr(paste(c(letters,LETTERS,0:9,".?! "),collapse=""),"ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡ ",i[v<-seq(2,l(i),2)])
i=unlist(p(i,""))
if(l(b<-which(i=="|")-1))i[1:b+b]=rev(i[1:b])
cat(i,sep="")

ব্যাখ্যা:

p=strsplit               # Aliases for common functions
l=length
i=p(readline(),"_")[[1]] # Read input, split by _s. Now every even-indexed substring is one that we must
                         # mirror vertically. (R indexes from 1.)
if(l(i)-1)               # If there are any _s,
  i[v]=chartr("paste(c(letters,LETTERS,0:9,".?! "),collapse=""),
  "ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡ ",
  i[v<-seq(2, l(i), 2)]
)                 # Flip the characters in the vertically-mirrored substrings
i=unlist(p(i,"")) # Split each substring into a single character object
if(l(b<-which(i=="|")-1)) # If there is a |,
  i[1:b+b]=rev(i[1:b])    # insert the reversed characters at the end of the list
cat(i,sep="")             # Print output

1

জাভাস্ক্রিপ্ট (ES5), 344 340 বাইট

function mirror(a){d=[];~a.indexOf("|")&&(a=a.split("|")[0]+a.split("|")[0].split("").reverse().join(""));for(var c=!1,b=0;b<a.length;++b)"_"==a[b]&&(c=!c),d[b]=c?"zʎxʍʌnʇsɹbdouɯlʞɾᴉɥɓɟǝpɔqɐZ⅄XMΛ∩⊥SᴚΌԀONW⅂⋊ſIH⅁ℲƎᗡƆᗺⱯ068ㄥ95߈Ɛᘔ⇂˙¿¡ "["zyxwvutsrqponmlkijhgfedcbaZYXWVUTSRQPNOMLKIJHGFEDCBA0987654321.?! ".indexOf(a[b])]:a[b];return d.join("")}

Ungolfed:

function mirror_u(s){return "zʎxʍʌnʇsɹbdouɯlʞɾᴉɥɓɟǝpɔqɐZ⅄XMΛ∩⊥SᴚΌԀONW⅂⋊ſIH⅁ℲƎᗡƆᗺⱯ068ㄥ95߈Ɛᘔ⇂˙¿¡ "["zyxwvutsrqponmlkijhgfedcbaZYXWVUTSRQPNOMLKIJHGFEDCBA0987654321.?! ".indexOf(s)]};

function mirror(str){var b=[];
if(~str.indexOf("|"))str=str.split("|")[0]+str.split("|")[0].split("").reverse().join("");
    var is_mirrored=false;
    for(var i=0;i<str.length;++i){
        if(str[i]=="_")is_mirrored=!is_mirrored;
        if(is_mirrored){b[i]=mirror_u(str[i])}else{b[i]=str[i]};
    }
    return b.join("");
}

সম্পাদনা: দীর্ঘতর ওয়ার্কিং কোড, এটি মিরর করা হয়েছে | অক্ষর দ্বারা 341।

function mirror(a){d=[];~a.indexOf("|")&&(a=a.split("|")[0]+a.split("|")[0].split("").reverse().join(""));for(var c=!1,b=0;b<a.length;++b)"_"==a[b]&&(c=!c),d[b]=c?"zʎxʍʌnʇsɹbdouɯlʞɾᴉɥɓɟǝpɔqɐZ⅄XMΛ∩⊥SᴚΌԀONW⅂⋊ſIH⅁ℲƎᗡƆᗺⱯ068ㄥ95߈Ɛᘔ⇂˙¿¡ "["zyxwvutsrqponmlkijhgfedcbaZYXWVUTSRQPNOMLKIJHGFEDCBA0987654321.?! ".indexOf(a[b])]:a[b];return d.join("")}//})""(nioj.d nruter;]b[a:])]b[a(fOxedni." !?.1234567890ABCDEFGHJIKLMONPQRSTUVWXYZabcdefghjiklmnopqrstuvwxyz"[" ¡¿˙⇂ᘔƐ߈59ㄥ860ⱯᗺƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Zɐqɔpǝɟɓɥᴉɾʞlɯuodbɹsʇnʌʍxʎz"?c=]b[d,)c!=c(&&]b[a=="_")b++;htgnel.a<b;0=b,1!=c rav(rof;))""(nioj.)(esrever.)""(tilps.]0[)"|"(tilps.a+]0[)"|"(tilps.a=a(&&)"|"(fOxedni.a~;][=d{)a(rorrim noitcnuf

𐐒চরিত্র দুই হল UTF-16 কোড ইউনিট লাগে, কিন্তু আপনি একাউন্টে এই গ্রহণ হবে বলে মনে হচ্ছে না। না Wপ্রথম টেস্ট ক্ষেত্রে সঠিকভাবে আসা আউট?
ব্যবহারকারী81655

অক্ষরগুলি সমস্ত ইউটিএফ -8। সমস্ত পরীক্ষার কেস সঠিক আউটপুট দেয়।
পল স্মিটজ

ওহ, মনে হচ্ছে আপনি U+15FAবিপরীতমুখী বি এর জন্য কোড পয়েন্ট ব্যবহার করছেন the চ্যালেঞ্জের একটি হ'ল কোড পয়েন্ট U+10412
ব্যবহারকারী81655

আমি লিঙ্কযুক্ত উইকিপিডিয়া পৃষ্ঠা থেকে অক্ষরগুলি ব্যবহার করেছি, আমি সেগুলি কেবলমাত্র আমার সম্পাদকের মধ্যে অনুলিপি করেছি।
পল স্মিটজ


0

জাভা 7, 504 502 বাইট

import java.util.*;String c(String s){Map m=new HashMap();int i=0,j;while(i<67)m.put("abcdefghijklmnopqrstuvwxyzABBCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?! ".charAt(i),"ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡ ".charAt(i++));String q=s.split("\\|")[0],z[]=(q+(s.equals(q)?"":new StringBuffer(q).reverse()+"")).split("_"),r="";for(i=-1;++i<z.length;){q="";for(char c:z[i].toCharArray())q+=m.get(c);r+=i%2<1?z[i]:q;}return r;}

অবশ্যই আমাকে আবার নিজের চ্যালেঞ্জের জবাব দিতে হবে। এবং .. এটি দীর্ঘ .. এক্সডি

অবহেলিত ও পরীক্ষার কেস:

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

import java.util.*;
class M{
  static String c(String s){
    Map m = new HashMap();
    int i = 0,
        j;
    while(i < 67){
      m.put("abcdefghijklmnopqrstuvwxyzABBCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?! ".charAt(i),
          "ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡ ".charAt(i++));
    }
    String q = s.split("\\|")[0],
           z[] = (q + (s.equals(q)
                        ? ""
                        : new StringBuffer(q).reverse() + "")
                 ).split("_"),
           r = "";
    for(i = -1; ++i < z.length;){
      q = "";
      for(char c : z[i].toCharArray()){
        q += m.get(c);
      }
      r += i%2 < 1
            ? z[i]
            : q;
    }
    return r;
  }

  public static void main(String[] a){
    System.out.println(c("_Will I be mirrored?!"));
    System.out.println(c("Wi_ll I be mi_rrored?!"));
    System.out.println(c("Will I be mirror|ed?!"));
    System.out.println(c("This_ is a test_ cont_aining bo|t_h mirrors."));
    System.out.println(c("0_1_2_3_4_5|_6_7_8_9"));
  }
}

আউটপুট:

Mıll I qǝ ɯıɹɹoɹǝp¿¡
Will I qǝ ɯırrored?!
Will I be mirrorrorrim eb I lliW
This ıs ɐ ʇǝsʇ contɐıuıuɓ qooq ɓuıuıɐtnoc ʇsǝʇ ɐ sı sihT
0⇂2Ɛ4ϛϛ4Ɛ2⇂0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.