দুটি স্ট্রিং থেকে এক স্ট্রিং পর্যন্ত ইনজেকশন


14

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম লিখুন যা একটি ইনজেকশন ফাংশন প্রয়োগ করে যা অর্পিত জোড় স্ট্রিংকে ইনপুট হিসাবে এবং একটি স্ট্রিং আউটপুট হিসাবে নেয়। অন্য কথায়, প্রতিটি ইনপুট অবশ্যই একটি অনন্য আউটপুট মানচিত্র করতে হবে।

সুনির্দিষ্ট

  • ইনপুটটি যথেচ্ছ দৈর্ঘ্যের কোনও দুটি স্ট্রিং হতে পারে তবে এটি কেবল মুদ্রণযোগ্য এএসসিআইআই অক্ষর (কোডগুলি ) নিয়ে গঠিত।[32,126]
  • একইভাবে, আউটপুট স্ট্রিংটির দৈর্ঘ্যের কোনও সীমাবদ্ধতা নেই তবে এটি অবশ্যই মুদ্রণযোগ্য ASCII অক্ষর সমন্বিত থাকতে পারে।
  • যদি আপনার ভাষা নির্বিচারে দৈর্ঘ্যের স্ট্রিং পরিচালনা করতে না পারে তবে প্রোগ্রামটি কেবল কোনও আকারের স্ট্রিংয়ের জন্য তাত্ত্বিকভাবে কাজ করতে পারে ।
  • ইনপুট থেকে আউটপুটগুলিতে ম্যাপিং প্রোগ্রামটির মৃত্যুদন্ডের মধ্যে সামঞ্জস্যপূর্ণ হওয়া উচিত। অন্যথায়, আপনি যে ম্যাপিং ব্যবহার করেন তা সম্পূর্ণ আপনার উপর নির্ভর করে, যতক্ষণ না এটি কোনও ইঞ্জেকশন is
  • ইনপুট অর্ডার করা হয়। দুটি ইনপুট স্ট্রিং যদি আলাদা হয় তবে সেগুলি অদলবদলের চেয়ে আলাদা আউটপুট তৈরি করা উচিত। stf(s,t)f(t,s)
  • প্রতিটি স্ট্রিংয়ের একটি সম্ভাব্য আউটপুট হওয়ার প্রয়োজন হয় না।
  • প্রতিটি ভাষায় সংক্ষিপ্ত উত্তর জেতে!

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

নিম্নলিখিত ইনপুটগুলির ফলাফলগুলি বিভিন্ন আউটপুটগুলিতে হওয়া উচিত। বিভ্রান্তি এড়াতে, স্ট্রিংগুলি গিলিমেটগুলি দ্বারা ঘিরে থাকে («») এবং একক স্পেস দ্বারা পৃথক করা হয়।

"ওহে বিশ্ব"
«লেহলো» »ড্রল
Fe পৃথক »« _ উত্তম
"একই নয়"

কোড »« গল্ফ »
«কো» «ডি গল্ফ
«কোডগল্ফ» «»

«» «»
«» «»
«» «»
«» «»
«» «»

"Abc", »« Def
«Abc» «," Def
C abc '»«' Def
C abc '»«' Def

«\» «" »
\\ »« \ "»

8
হুম আমি কেবল "একটি প্রোগ্রাম লিখুন যা লক্ষ্য করেছেন ..." - নোট করুন মেটা conকমত্য দ্বারা (বর্তমানে 46 টি আপ, 1 ডাউন) "কেবল প্রোগ্রামগুলিতে সীমাবদ্ধতার জন্য কেবল" প্রোগ্রাম "না হয়ে স্পষ্টভাবে" সম্পূর্ণ প্রোগ্রাম "নির্দিষ্ট করা দরকার । আমি আশা করি আপনি এটি সীমাবদ্ধ করার চেষ্টা করতে চাইছেন না, তবে আপনি যদি তা করেন তবে আপনাকে সে অনুযায়ী পোস্টটি আপডেট করতে হবে এবং আমাদের মধ্যে যারা উত্তর হিসাবে ইতিমধ্যে ফাংশন জমা দিয়েছেন তাদের সম্বোধন করতে হবে।
জোনাথন অ্যালান

4
@ জোনাথান অ্যালান উদ্দেশ্যটি ছিল কাজগুলি করার অনুমতি দেওয়া।
নেতিবাচক সাত

3
স্ট্রিংগুলির কোনওটি খালি থাকতে পারে?
শেগি

2
@ শেগি হ্যাঁ, হয় বা উভয়ই পারেন।
নেতিবাচক সাত

1
আমাদের কিছু পরীক্ষার কেস থাকতে পারে? ধন্যবাদ!
আউফ্লাক

উত্তর:


17

ব্রেনফাক, 30 29 27 23 বাইট

,[-[+.>]-[>+<---]>.-.,]

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

ইনপুটগুলি 0x01বাইট দ্বারা পৃথক করা হয় ।

এটি পরিণত ["foo", "bar"]হয় fUToUToUTUTbUTaUTrUT। মূল দুটি স্ট্রিং পুনরুদ্ধার করতে, 3 টি অক্ষরের গোষ্ঠী গ্রহণ করুন, যেখানে দ্বিতীয় অক্ষরটি নেই Uসেখানে একটি সন্ধান করুন এবং সেখানে বিভক্ত হন।


@ গ্রিমি দুঃখিত, ভুল বোঝাবুঝি "ইনপুটগুলি 0x01 বাইট দ্বারা পৃথক করা হয়।"
wastl

15

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

2 টি স্ট্রিংয়ের অ্যারে হিসাবে ইনপুট নেয়। লুইসের উত্তরে অনুপ্রাণিত ।

JSON.stringify

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


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

হিসাবে ইনপুট লাগে (a)(b)

a=>b=>[a.length,a]+b

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

রিটার্নস দৈর্ঘ্য , একটি কমা দ্বারা অনুসরণ, এর সংযুক্তকরণের দ্বারা অনুসরণ এবং ।aab


ঈশ্বরের অভিশাপ! আমি stringifyনিজেই কৌশলটি ব্যবহার করতে চলেছিলাম!
শেগি

সাথে বিরতি a="hello","" b="world"এবংa="hello" b="","world"
Soleil

1
@ সোলিল যা দেবে ["\"hello\",\"\"","\"world\""]এবং ["\"hello\"","\"\",\"world\""]
আর্নল্ড

1
@ আরনাউল্ড ব্যাকস্ল্যাশ সুরক্ষা দৃশ্যমান হবে না। ফাংশনটি ইনজেকশন দেবে না।
Soleil

1
@ সোলিল আপনার অর্থ কী তা আমি বুঝতে পারি না। JSON.stringify()অবশ্যই পলায়ন "একটি হেক্সাস ডাম্প দেখুন
আর্নৌল্ড

15

jq -c, 0 বাইট

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

এটি স্পষ্টতই প্রতারণার মতো বোধ করে ...? তবে মনে হয় এটি চ্যালেঞ্জের নিয়ম মেনে চলছে।

ডিফল্টরূপে, jqএর পাঠ্যকে একটি মানব-পঠনযোগ্য JSON ফর্ম্যাটে আউটপুট দেবে। -c(নিবিড়) পতাকা বলে jq"কম্প্যাক্ট" শৈলী, যা নতুন লাইন (যেহেতু চ্যালেঞ্জ করতে বারণ মুদ্রণযোগ্য নয় এমন ASCII) সরিয়ে ফেলা মধ্যে আউটপুট।


1
ওপি খালি ইনপুটটিকে অনুমতি দেয়, সুতরাং একটি = "", বি = "এক্স" = "এক্স" বি = "" হিসাবে একই আউটপুট দেয় না
Gnudiff

3
@ গুণুডিফ কীভাবে? তারা ["","x"]["x",""]
দিত

1
দুঃখিত, আপনি ঠিক বলেছেন।
Gnudiff

7

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

str

A (অন্তর্নির্মিত) ফাংশন যা দুটি স্ট্রিংয়ের একটি তালিকা দেয়, তালিকার একটি স্ট্রিং প্রতিনিধিত্ব করে

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



ঠিক আছে, 1 বাইট পাইথ সলিউশন `একই কাজ করে।
অ্যান্ডারস কাসরগ

5

জাপট -S , 3 বাইট

আমি এখনও অনুভব করছি যে আমি অবশ্যই এখানে কিছু মিস করছি ...

®mc

চেষ্টা করে দেখুন

সম্ভবত 2 বাইট:

mq

চেষ্টা করে দেখুন

বা এই 1-বাইটার দিয়ে এটি প্রসারিত:

U

চেষ্টা করে দেখুন

প্রথম সংস্করণ অ্যারের প্রতিটি স্ট্রিংকে তার কোডপয়েন্টগুলিতে ম্যাপ করে এবং আউটপুটগুলি একটি স্পেসের সাথে যোগ দেয়।

দ্বিতীয় সংস্করণ প্রতিটি স্ট্রিংকে একটি অক্ষর অ্যারেতে বিভক্ত করে এবং আউটপুটগুলি একটি স্পেসের সাথে যোগ দেয়।

এবং তৃতীয় সংস্করণ, যা প্রতারণার মতো অনুভব করে, -Qপতাকাটি ভারী উত্তোলন করে কেবল ইনপুট আউটপুট দেয় srringify


5

পাইথ , 4 বাইট

jNmC

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

এই বেস 256 প্রতিটি স্ট্রিং পরিবর্তিত এবং তারপর একটি সঙ্গে অনুক্রমে তাদের যোগদান করে "। ফলাফলগুলি প্রতিটি সংখ্যা হওয়ায় "নির্বিঘ্নে তাদের আলাদা করে দেয় এবং মূল স্ট্রিংগুলি পুনরুদ্ধার করা যায় mCsdczN


1
@AndersKaseorg একটি প্রস্তাব দেওয়া 1-byter
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন আমি এটি পোস্ট করার কয়েক মিনিট পরে আমি এটি সম্পর্কে সচেতন ছিলাম, আমি কেবল এই সমাধানের চেতনাটিকেই প্রাধান্য দেব। যাহাই হউক না কেন এটা আনার, এবং স্পষ্টভাবে জন্য ধন্যবাদ এটা নিজেকে পোষ্ট করতে দ্বিধা বোধ করবেন না :)
FryAmTheEggman

আমি আপনার উত্তরটি আরও পছন্দ করি। :) এবং না, আমি পাইথকেও জানি না। আপনি যদি চান তবে এটি আলাদা করে দেওয়া উত্তর (বা এটি সম্পাদনা করে সম্মিলিত উত্তর) হিসাবে নিজেই পোস্ট করতে পারেন, অন্যথায় অ্যান্ডারস কাসেরগ এটি পোস্ট করতে পারেন, যেহেতু তিনিই সেই মন্তব্যে উল্লেখ করেছেন।
কেভিন ক্রুজসেন

4

টি এসকিউএল, 38 বাইট

SELECT QUOTENAME(a)+QUOTENAME(b)FROM i

ivarcharab

ব্যবহারগুলি QUOTENAME, যা স্ট্রিংগুলির চারপাশে ঘিরে থাকে []এবং কোনও অভ্যন্তরীণ বন্ধনীগুলি থেকেও পালিয়ে যায়। একটি অনন্য আউটপুট মানচিত্র করা উচিত।


1
মাইএসকিউএলে একই দৈর্ঘ্য: SELECT CONCAT(QUOTE(a),QUOTE(b))FROM t এটি অনলাইনে চেষ্টা করুন
রাত 2

4

Zsh , 7 বাইট

<<<$@:q

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

স্পষ্টত স্পেসে যুক্তিগুলিতে যোগদান করে। qপরিবর্তক zsh বলে, আর্গুমেন্ট, যা গভীরভাবে স্পেস পালাতে উদ্ধৃত করা নিশ্চিত একটি unescaped স্থান unambiguously দুটি আর্গুমেন্ট আলাদা করে।

(ছাড়া q, "a " "b"এবং "a" " b"উভয়ই ফল দেয় "a b")


3

এমএটিএল , 1 বাইট

j

কোডটি ইনপুট হিসাবে দুটি স্ট্রিংয়ের অ্যারে নেয় এবং সেই অ্যারের স্ট্রিং প্রতিনিধিত্ব করে।

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

ব্যাখ্যা

কোডটি সহজেই স্ট্রিং হিসাবে ইনপুটটি পড়ে, মূল্যহীন।


1
এটি কি ইনপুট হিসাবে সত্যই দুটি স্ট্রিং নেয়? দেখে মনে হচ্ছে এটি কেবল যাই হোক না কেন ইনপুট প্রিন্ট করে। এটি অনলাইন চেষ্টা করুন!
জেমস

1
@ ডিজে এটি কেবল অবমূল্যায়িত ইনপুট পড়ে, তাই এটি যে কোনও কিছু পড়ে। এটি কি একটি ফাঁক? আরও মানসম্মত পন্থা হ'ল মূল্যায়নকৃত ইনপুটটিকে অ্যারে হিসাবে নেওয়া এবং তারপরে স্ট্রিং প্রতিনিধিত্বতে রূপান্তর করা। তবে ফলাফলটি আমার কোডের মতোই হবে, তাই আমি যুক্তি দেব যে পার্থক্যটি অযৌক্তিক
লুই মেন্ডো

3

জেলি , 2 বাইট

ŒṘ

একটি মোনাডিক লিঙ্ক অক্ষরের দুটি তালিকার একটি তালিকাটিকে তার আর্গুমেন্ট হিসাবে স্বীকার করে যা অক্ষরের একক তালিকা দেয়।

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

কিভাবে?

পাইথনের স্ট্রিং প্রতিনিধিত্ব, সরলতা পেতে এটি অন্তর্নির্মিত।


3

হাস্কেল, 4 বাইট

show

হাস্কেল অন্তর্নির্মিত জিনিসগুলিকে স্ট্রিংয়ে পরিণত করতে। ইনপুটটি স্ট্রিংগুলির একটি জোড়া হিসাবে নেওয়া হয়।

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


3

05 এ বি 1 , 2 বাইট

₁ö

এটি অনলাইন চেষ্টা করুন! প্রতিটি স্ট্রিংকে বেস-256 পূর্ণসংখ্যা হিসাবে ব্যাখ্যা করে, তারপরে ফর্মটিতে দুটি মুদ্রণ করে [1, 2]


05AB1E, 1 বাইট (অজানা বৈধতা)

â

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

নিজের সাথে ইনপুটটির কার্টেসিয়ান পণ্য গ্রহণ করে। ইনপুটটির উদ্ধৃতিগুলি এড়ানো যায় না, যা বিভ্রান্তির কারণ হতে পারে। আমি 12 টি পর্যন্ত সমস্ত সংশ্লেষকে জোর করে চাপিয়ে দিয়েছি ", "এবং "], ["কোনও সংঘর্ষের সন্ধান পাইনি; তবে, আমি প্রমাণ করতে পারি না যে দীর্ঘতর স্ট্রিংগুলির জন্য কোনও সংঘর্ষ নেই। যদি কেউ প্রমাণ বা পাল্টা উদাহরণ নিয়ে আসতে পারেন, আমি এটির খুব প্রশংসা করব!

তুচ্ছ 0-বাইটার কোটগুলি এড়ানোর কারণে ব্যর্থ হয়: ইনপুট ( ", ", খালি স্ট্রিং) এবং (খালি স্ট্রিং ", ") উভয়ই আউটপুট দেয় ["", "", ""]

1-বাইটার º(প্রতিটি ইনপুট স্ট্রিং মিরর) এছাড়াও ব্যর্থ হয়: ইনপুট ( ", "" ,", খালি স্ট্রিং) এবং (খালি স্ট্রিং " ,"", ") উভয়ই আউটপুট দেয় ["", "" ,"", "" ,"", ""]


3

সি # 26 বাইট সহ (লুকাশ ল্যাং, কেভিন ক্রুইজসেন এবং জো কিংকে ধন্যবাদ)

a=>b=>$"{a.Length}.{a}{b}"

tio.run lambda


1
অনুগ্রহ করে tio.run
ভের নিক বলছেন

এটি এখনও ("a <>", "বি") এবং ("ক", "<> বি") বিরতি দেয় - মনে রাখবেন যে আপনি কেবল ইনপুটগুলিতেই মনোযোগ দিচ্ছেন তা যদি হয় না কেন, সমস্ত ক্ষেত্রে পরিচালনা করা অসম্ভব note তাদের মধ্যে / তার চারপাশে রাখুন - আপনার কিছুটা স্ট্রিং সংশোধন করা দরকার
লুকাশ ল্যাং

1
দুঃখিত, এখনও না: ( "1", "11111111111") এবং ( "11111111111", "1") - অন্যদিকে কাজ করে (এবং এমনকি খাটো) এই কি $"{a.Length}.{a}{b}"- আপনি সবসময়ই নিষ্কাশন করতে পারেন aএবং bকোনো ছাড়া এই থেকে অস্পষ্টতা (কেবল .দৈর্ঘ্য পাওয়ার জন্য প্রথম অবধি পড়ুন a, bতারপরে
লুকাশ ল্যাং

1
@ লুকাসল্যাং গ্রেট। ফলোআপগুলি জন্য ধন্যবাদ।
Soilil

1
অনেক ধন্যবাদ @ জোকিং!
সোলেল


2

পাওয়ারশেল , 22 বাইট

অনেক সমাধান mazzy ধন্যবাদ

"$($args|% le*)"+$args

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

পাঁচ নে, ওরে আমার।


"ab" "c"এবং "a" "bc"উভয় একই আউটপুট উত্পাদন।
ব্র্যাডিসি

@ জোকিং জিনিস ঠিক করা উচিত। আশা রাখি,।
ভেস্কাহ



1

1
{"Hello, ","World"}এবং {"Hello",", World"}তারা কি একই স্ট্রিং দেয় না?
নাহুয়েল ফিউইলুল

@ নাহুয়েলফিউলিউল আহ, দুর্দান্ত ক্যাচ Compressএটাই কি তাহলে
attinat

1

সিএসএস + এইচটিএমএল, 55 + 20 = 75 বাইট

<code>ট্যাগগুলির পরে এইচটিএমএলে ইনপুট সরবরাহ করুন । আউটপুটে প্রতিটি ইনপুট থেকে চাক্ষুষভাবে অক্ষরগুলিকে ইনজেক্ট করে। যখন কোনও ইনপুট অন্যটির চেয়ে দীর্ঘ হয়, তখন সংক্ষিপ্ত ইনপুটটির অক্ষর (গুলি) হারিয়ে যাওয়ার জন্য ভিজ্যুয়াল স্পেসগুলি দেখানো হয়। এছাড়াও ভিজ্যুয়াল আউটপুট স্বতন্ত্রতা জোর করার জন্য এইচটিএমএলে একটি কমা যুক্ত করা হয়েছে (আশা করি)।

*{position:absolute;letter-spacing:9px}code>code{left:9px
<code>abcdefg<code>hijklmn</code>,



1

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

&dd

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

STDERR এ অবজেক্টের উপস্থাপনা আউটপুট করে।


পার্লের সাথে আমি যথেষ্ট পরিচিত নই - আপনি এখানে ফাঁকা স্থান যুক্ত স্ট্রিংটি কীভাবে ইনপুট করবেন?
নেতিবাচক সাত

2
@negativeseven ভালো
Grimmy

@ নেগেটিভসিভেন হ্যাঁ দুঃখিত, আমি কেবল স্ট্রিংয়ের তালিকার জন্য একটি শর্টকাট বাক্য গঠন ব্যবহার করছিলাম। আপনি এটি একটি সাধারণ ফ্যাশনে করতে পারেন["Hello, ", "World!"]
জো কিং

1

লুয়া , 27 বাইট

print(('%q%q'):format(...))

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

সম্পূর্ণ প্রোগ্রাম, যুক্তি হিসাবে ইনপুট নিন।

Zsh উত্তর দ্বারা অনুপ্রাণিত হয়েছে, কারণ এটি %qঅভ্যন্তরীণ নিরাপদ-স্ট্রিং ইঞ্জিন ব্যবহার করতে সংশোধকও ব্যবহার করে।

এছাড়াও, আমি ন্যায়বিচার সম্পর্কে চিন্তা করতে পারেন

('%q%q'):format

তবে আমি নিশ্চিত নই যে এটি গ্রহণযোগ্য উত্তর কিনা।


আমি মনে করি না যে দ্বিতীয়টি বৈধ, যেহেতু ('%q%q'):formatকোনও বস্তুর ফলাফল হয় না, উদাহরণস্বরূপ, কোনও ভেরিয়েবলের জন্য বরাদ্দ করা যেতে পারে। এটি কেবল নিজস্বভাবে একটি সিনট্যাক্স ত্রুটি ঘটায়। কোলন বাক্য '%q%q'.format('%q%q', ...)গঠনটি কেবল একটি শর্টকাট এবং লুয়া ফাংশনগুলির জন্য আংশিক প্রয়োগের অনুমতি দেয় না
জো কিং

@ জোকিং হ্যাঁ, আপনি ঠিক বলেছেন, আমার ধারণা।
বলছেন মনিকাকে



1

সি (জিসিসি) , 59 বাইট

পরামর্শের জন্য গ্রিমিকে ধন্যবাদ।

ইনপুট স্ট্রিংগুলির একটি অ্যারে নেয় (যার মধ্যে "2" এই চ্যালেঞ্জের জন্য সঠিক সংখ্যা) এবং পিছন সহ তাদের চরিত্রের মানগুলি মুদ্রণ করে NUL। প্রযুক্তিগতভাবে, %pব্যবহৃত ফর্ম্যাটরটি printfপয়েন্টারগুলির জন্য, তবে যদি আপনি কীভাবে দেখতে চান সে সম্পর্কে পছন্দ করেন না তবে স্বেচ্ছাচারিত পূর্ণসংখ্যার হেক্স মানগুলি প্রদর্শন করার জন্য এটি দুর্দান্ত কাজ করে!

f(s,t)char**s,*t;{for(;t=*s++;)for(;printf("%p",*t++)^5;);}

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


নিস! এখানে একটি 59
গ্রিমি

1

ব্র্যাচল্যাগ , 0 বাইট

বিন্যাসে আউটপুট 2 স্ট্রিংয়ের অ্যারে হিসাবে ইনপুট: Z = ["{{string 1 stringified}}","{{string 2 stringified}}"]

আরনাউল্ডের JSON.stringify উত্তর এবং ডোরকনব্বের খালি জকিউ উত্তর দ্বারা অনুপ্রাণিত

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




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