মুদ্রণ দুটি স্ট্রিংয়ের ক্রস ক্রস করে


9

একই দৈর্ঘ্যের গ্যারান্টিযুক্ত দুটি স্ট্রিংয়ের সেট দেওয়া, তাদের ক্রিসস ক্রসটি মুদ্রণ করুন ।

Criss ক্রস দুই স্ট্রিং নিম্নরূপ প্রাপ্ত হয়।

  1. দ্বিতীয় স্ট্রিংয়ের দ্বিতীয় অক্ষরটি উত্পাদন করুন, তারপরে প্রথম স্ট্রিংয়ের প্রথম অক্ষর।
  2. দ্বিতীয় স্ট্রিংয়ের প্রথম অক্ষরটি উত্পাদন করুন, তারপরে প্রথম স্ট্রিংয়ের দ্বিতীয় অক্ষরটি উপস্থাপন করুন।
  3. প্রতিটি স্ট্রিংয়ের প্রথম অক্ষর বাতিল করুন।
  4. যদি স্ট্রিংগুলির প্রতিটি একের অধিক অক্ষর থাকে তবে পদক্ষেপ 1 এ ফিরে যান।

উদাহরণস্বরূপ, যদি দুটি স্ট্রিং হয়

Truck
Tower

Criss ক্রস হয়

oTTrwroueuwcrcek

যেমনটি নিম্নলিখিত চিত্রটিতে চিত্রিত হয়েছে।

নকশা

প্রতিটি রঙ ক্রিস-ক্রসিংয়ের পৃথক পুনরাবৃত্তি উপস্থাপন করে। সংখ্যাগুলি আউটপুটে সংশ্লিষ্ট চরিত্রের সূচকগুলি দেখায়।


খুব কমপক্ষে এক সপ্তাহ অতিবাহিত হওয়া অবধি আপনার কোনও উত্তর গ্রহণ করা উচিত নয়, এটি যে কোনও সময় মারতে পারে।
পাভেল

@ ফিনিক্স ঠিক আছে আমি পরের বার এটি মনে রাখব (এই স্ট্যাকেক্সচেঞ্জে এটি আমার প্রথম প্রশ্ন ছিল)
কে স্প্লিট এক্স

উত্তর:


6

জেলি , 10 8 বাইট

żṚj@¥2\U

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

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

żṚj@¥2\U  Main link. Arguments: s, t (strings)

          Arguments:    "Truck", Tower"
ż         Ziphwith; create all pairs of corresponding characters.
          Return value: ["TT", "ro", "uw", "ce", "kr"].
     2\   Reduce each pair of adjacent strings by the quicklink to the left.
    ¥       Combine the two links to the left into a dyadic chain.
 Ṛ            Reverse the left string.
  j@          Join the second string, using the previous result as separator.
          Map:          "TT", "ro" -> join("ro", "TT") -> "rTTo"
                        "ro", "uw" -> join("uw", "or") -> "uorw"
                        etc.
          Return value: ["rTTo", "uorw", "cwue", "kecr"]
       U  Upend; reverse each string.
          Return value: ["oTTr", "wrou", "euwc", "rcek"]
          (implicit) Flatten and print.

বাহ বেশ আশ্চর্যজনক
কে স্প্লিট এক্স

ব্যাখ্যা, দয়া করে?
শেগি

@ শেগি আমি আমার উত্তর সম্পাদনা করেছি।
ডেনিস



3

হাস্কেল , 44 38 বাইট

ক্রস করা হয়েছে 44 এখনও 44

[_]#_=""
(a:b)#(x:y)=y!!0:a:x:b!!0:b#y

কিছুটা কম গল্ফড / সম্ভবত আরও কিছুটা পঠনযোগ্য:

[_]      # [_]      = ""
(a:b:bs) # (x:y:ys) = y:a:x:b:((b:bs) # (y:ys))

1
মজার ঘটনা: আমার ব্রাউজারে কমপক্ষে, হেডারে এখন 44
ছাড়িয়ে যাবে না


0

সি ++ 14, 115 112 বাইট

নামবিহীন ল্যাম্বদা হিসাবে, প্যারামিটারগুলি এমন হওয়া উচিত std::string:

#define P putchar(
[](auto A,auto B){for(int i=0;++i<A.size()&&i<B.size();P B[i]),P A[i-1]),P B[i-1]),P A[i]));}

অবরুদ্ধ এবং ব্যবহার:

#include<iostream>
#include<string>

using namespace std;

#define P putchar(
auto f=
[](auto A,auto B){
 for(int i=0;
     ++i<A.size() && i<B.size();
     P B[i]),
     P A[i-1]),
     P B[i-1]),
     P A[i]));
}
;

int main(){
 string A="Truck",B="Tower";
 f(A,B);
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.