জিওবিটসিয়ান ভাষা


16

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

এই প্রক্রিয়াটিকে জিওবিটসাইজিং বলা হয়

উদাহরণস্বরূপ " জিওবিটস " শব্দটি বিভক্ত হতে পারে geo bits, এবং বাজে কবিতা

Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy

এটি হিসাবে Geobitsized হবে

Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy

কারণ প্রত্যেকটি gহয়ে যায় geo, প্রত্যেকটি G(যদিও কিছু নেই) হয়ে যায় Geo, প্রতিটি bহয় bits, এবং প্রতিটি Bহয় Bits

মনে রাখবেন যে প্রতিটি প্রতিস্থাপনটি কোনও মধ্যবর্তী পদক্ষেপ নয়, মূল স্ট্রিংয়ের প্রতি শ্রদ্ধার সাথে সম্পাদিত হয়। যেমন যদি geoছিল gboপরিবর্তে, b's নির্মিত দিয়ে প্রতিস্থাপিত করবে না bits

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা জিওবিটসিয়ান ভাষা উত্পন্ন করতে পারে।

ছোট হাতের অক্ষর (এজে) এবং স্পেসগুলি তৈরি করে একটি একক-লাইন স্ট্রিং নিন। এই শব্দটি জিওবিটসাইজিং আর্গুমেন্ট হিসাবে ব্যবহৃত হবে, স্পেসগুলি পৃথক পৃথক করে। আপনি ধরে নিতে পারেন:

  • বিভাগগুলি খালি হবে না। সুতরাং স্পেসগুলি একে অপরের প্রতিবেশী হবে না বা স্ট্রিংয়ের শুরু বা শেষে থাকবে না।
  • প্রতিটি বিভাগ আলাদা বর্ণ দিয়ে শুরু হয়। এইভাবে 26 এর বেশি হতে পারে না।

উদাহরণস্বরূপ, কিছু বৈধ segmented স্ট্রিং আপনাকে সমর্থন আবশ্যক হয় geo bits, butt ner, alex, এবং do o r k nob(একক চিঠি অংশ কোন প্রভাব আছে কিন্তু বৈধ নয়)। কিন্তু geo , butt ner, Alex, এবং do o r k n obঅবৈধ।

আপনার প্রোগ্রাম বা ফাংশনটিতে জিওবিটসাইজিং প্রয়োগ করতে এবং ফলস্বরূপ জিওবিটসিয়ান ভাষা মুদ্রণ করতে বা ফিরিয়ে আনতে অন্য একটি স্বেচ্ছাসেবী স্ট্রিং গ্রহণ করা দরকার।

  • আপনি ধরে নিতে পারেন যে এই স্ট্রিংয়ে কেবলমাত্র নিউলাইন এবং মুদ্রণযোগ্য ASCII রয়েছে।

  • মনে রাখবেন অক্ষরের কেসগুলি ইনপুট থেকে আউটপুট পর্যন্ত সংরক্ষণ করতে হবে।

no pro gr am m ingজিওবিটসাইজিং আর্গুমেন্ট হিসাবে ব্যবহার করে এখানে আরও কয়েকটি উদাহরণ দেওয়া হয়েছে :

[empty string][empty string]

iing

IIng

Mmmm, mmm... MmmmMMM: m&m!Mmmm, mmm... MmmmMMM: m&m!(কোনও পরিবর্তন নেই)

People think bananas are great, don't you?Proeoprole thingnok bamnoamnoams amre grreamt, dono't you?

Pet a Puppy
Google Wikipedia

Proet am Prouproproy
Groogrle Wingkingproedingam

নোট করুন যে আর্গুমেন্টটি কীভাবে সাজানো হয়েছে তা ফলস্বরূপ অভিন্ন হওয়া উচিত, যেমন ing pro m no am grউপরের মত একই ফলাফল পাওয়া উচিত।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


আমরা কি "জিওবিটসাইজিং আর্গুমেন্ট "টিকে অ্যারে হিসাবে নিতে পারি? যেমন["no", "pro", "gr", "am", "m", "ing"]
ডাউনগোট

@ আপগোট দুঃখিত তবে না
ক্যালভিনের শখ

@ আপগোট চেষ্টা করুন \\b${l}(\\S+)যদিও এতে আপনার ব্যয় হয় 5 বাইট।
নীল

3
স্থান দ্বারা পৃথক স্ট্রিংয়ের স্বেচ্ছাচারিত ইনপুট প্রয়োজনীয়তার জন্য -1 ।
অ্যাডমবর্কবার্ক

2
পরীক্ষা ক্ষেত্রে প্রস্তাবিত: abra cadabra, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~যে সব প্রান্ত মামলা আবরণ উচিত এবং যদি এক চেষ্টা regexes ব্যবহার করতে তাদের অনেক আছে ...
ডেনিস

উত্তর:


6

জেলি , 18 বাইট

ṣ⁶;Œu1¦€$;©ZḢiЀị®

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

বিকল্প সংস্করণ, 15 বাইট (অ-প্রতিযোগী)

জেলি শিরোনাম কেস ফাংশন একটি বাগ ছিল; এটি প্রথম শব্দটিকে বড় করে দেখায় নি। এটি ঠিক করা হয়েছে, সুতরাং নিম্নলিখিতটি এখন কাজ করে।

ṣ⁶;Œt$;©ZḢiЀị®

এই কোডটি প্রতিদ্বন্দ্বী সংস্করণ হিসাবে একই কাজ করে, ব্যতীত Œt(শিরোনাম কেস) শর্তসাপেক্ষ বড় হাতের বদলে প্রতিস্থাপন করে Œu1¦€

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

ṣ⁶;Œu1¦€$;©ZḢiЀị®  Main link. Left argument: w (words). Right argument: s (string)

ṣ⁶                  Split w at spaces.
        $           Combine the two links to the left into a monadic chain.
       €              Map over the words.
   Œu1¦                 Uppercase the item at index 1.
  ;                   Append the result to the unmodified words.
         ;          Append all characters in s to the list of words.
          ©         Copy the result to the register.
           Z        Zip/transpose, grouping the first chars into the first list.
            Ḣ       Head; extract the list of first characters.
             iЀ    Find the first index of each character in s.
                ị®  Select the characters/strings from the list in the register
                    that are at those indices.

5

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

lambda w,s:s.translate({ord(t[0]):t for t in(w+' '+w.title()).split()})

আইডিয়নে এটি পরীক্ষা করুন ।

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

পাইথন 3 -এ বিল্ট-ইন str.translateএকটি স্ট্রিং এবং ডিকশনারি নেয় এবং স্ট্রিংয়ের প্রতিটি অক্ষরকে প্রতিস্থাপন করে যার কোড পয়েন্টটি সেই অভিধানের মূল কী যার সাথে সংশ্লিষ্ট মান হয়, যা স্ট্রিং, একটি পূর্ণসংখ্যা বা কোনও নয় (সমান খালি স্ট্রিং).

শব্দের স্ট্রিং রূপান্তর W শিরোনাম ক্ষেত্রে (অর্থাত, প্রতিটি শব্দের প্রথম অক্ষর ভিত্তি) এবং ফল থেকে এটি সংযোজন করার w+' 'সৃষ্টি স্থান একটি স্ট্রিং lower- এবং বড় হাতের সংস্করণ (প্রথম চিঠি) সঙ্গে শব্দ পৃথক করা হয়। দ্বিতীয় যুক্তি ছাড়াই, str.splitসাদা স্পেসে বিভক্ত হয়, সুতরাং সমস্ত শব্দের তালিকা(w+' '+w.title()).split() তৈরি করে ।

শেষ অবধি, ডিকশনারি অনুধাবন {ord(t[0]):t for t in...}প্রতিটি শব্দের টি- তে একটি অভিধানে প্রবেশ করে কী ord(t[0])(প্রথম বর্ণের কোড পয়েন্ট) এবং মান টি দিয়ে , তাই str.translateউদ্দেশ্যে করা বিকল্পগুলি সম্পাদন করবে।


3

পাইথন, 126 99 95 81 বাইট

ডেনিসকে অনেক ধন্যবাদ:

lambda G,S,j=''.join:j(s+j(g[1:]for g in G.split()if g[0]==s.lower())for s in S)

সম্পাদনা 1: একটি অস্থায়ী সংযোজন করার প্রয়োজন নেই

সম্পাদনা 2: Sবড় হাতের অক্ষর থাকতে পারে ...

সম্পাদনা 3: জি নকল করবেন না

সম্পাদনা 4: আরও কিছুটা সংকুচিত হয়ে এটিকে এক লাইনে ফেলে দেওয়া হয়েছে

সম্পাদনা 5: নামবিহীন ল্যাম্বদা এবং ব্যবহার করে j=join' '





2

Pyth, 18 16

MsXGhMJcjdrBH3)J

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

gজিওবিটসাইজিং সম্পাদন করে এমন একটি ফাংশন সংজ্ঞায়িত করে। প্রোগ্রাম হিসাবে এটি যদি দ্বিতীয় স্ট্রিংটি একক লাইন হয় তবে এটি কিছুটা ছোট হবে তবে মাল্টলাইন ইনপুটটি এটির পক্ষে উপযুক্ত নয়:

sXwhMJcjdrBz3)J

এখানে সাধারণ ধারণাটি ছিল জিওবিটসিয়ান স্ট্রিংয়ের শিরোনাম এবং এটি মূল স্ট্রিংয়ের সাথে যুক্ত করা। তারপরে স্পেসে এবং প্রতিটি স্ট্রিংয়ের জন্য এটি বিভক্ত করুন, প্রথম অক্ষরটি নিন এবং এটি যে স্ট্রিংটি প্রতিনিধিত্ব করে তা মানচিত্র করুন। এইভাবে Xপ্রতিটি শব্দের প্রথম অক্ষর পুরো শব্দে পরিণত হবে।


আপনি কি ডেনিসকে ছাড়িয়ে গেছেন?
বোজিদার মারিনভ

@ বুজিদারমারিনভ আপনি যদি ডেনিসকে অন্য কোনও ভাষা ব্যবহার করে গননা হিসাবে আউটগল্ফিং হিসাবে গণনা করেন তবে হ্যাঁ;)
ফ্রাইআম দ্য এজিগম্যান

2

পাইথন 2, 83 78 বাইট

lambda w,s:''.join(c+w[(' '+w).find(' '+c.lower()):].split()[0][1:]for c in s)

আইডিয়নে এটি পরীক্ষা করুন ।

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

আমরা বারবার উপর সমস্ত অক্ষর স্ট্রিং গুলি

আমরা শব্দের স্ট্রিং একটি স্থান পূর্বে লিখুন W , তারপর lowercased একটি সংঘটন অনুসন্ধান একটি স্থান দ্বারা পূর্বে।

  • যেমন একটি সংঘটন যদি থেকেই থাকে, findস্ট্রিং স্থান সূচক ফিরে আসবে ' '+w, যার সূচক মিলে যায় মধ্যে W

    w[...:]এইভাবে এর লেজ ফেরৎ W , প্রথম অক্ষর দিয়ে শব্দ থেকে শুরু split()ফাঁকা জায়গায় লেজ বিভক্ত করে, [0]প্রথম অংশটি (শব্দ) নির্বাচন করে এবং [1:]তার প্রথম অক্ষরটি সরিয়ে দেয়।

    পূর্ববর্তী ফলাফলটিতে সি প্রিন্ডেন্ড করার পরে , আমরা সঠিকভাবে কেস শব্দটি পাই যা সি দিয়ে শুরু হয় ।

  • কোনও শব্দ সি দিয়ে শুরু না হলে , -1find আসবে ।

    সুতরাং, w[...:]শেষ অক্ষর উৎপাদ W , split(), একটি বিন্যাস এটা গোপন করে [0]মোড়ানো পূর্বাবস্থায় ফিরিয়ে আনে, এবং [1:]স্ট্রিং থেকে মাত্র চরিত্র সরিয়ে ফেলা হয়।

    সি প্রিপেন্ডিংয়ের পরে , আমরা সিঙ্গেলটন স্ট্রিংটি পাই যার অক্ষর সি , তাই পুরো ক্রিয়াটি কোনও অপ-অপশন।

অবশেষে, ''.joinসব ফলে concatenates স্ট্রিং, এর Geobitsized সংস্করণ ফেরার গুলি



1

সিজেম, 19 বাইট

lq\S/_32af.^+_:c\er

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

l       e# Read first line of input (list of words).
q\      e# Read remaining input and swap with first line.
S/      e# Split around spaces.
_       e# Duplicate.
32af.^  e# Convert the first letter of each word to upper case by taking
        e# the element-wise XOR with the list [32].
+       e# Append the upper-cased words to the original ones.
_:c     e# Duplicate and convert each word to its first character.
\       e# Swap characters with words.
er      e# Transliteration, replacing each character with the corresponding word.

1

জাভাস্ক্রিপ্ট ES6, 67 63 70 বাইট

g=>s=>s.replace(/\S/g,l=>l+(g.match(`\\b\\${l}(\\S+)`,'i')||[,""])[1])

এটি ফায়ারফক্সে পরীক্ষা করুন। বাগগুলি এটি আমার চেয়ে বেশি দীর্ঘ করছে

ব্যাখ্যা

function(gbarg, str) {
   return str.replace(/\S/g, function(chr) { // Replace non-whitespace w/...
        return chr + (
         gbarg.match(`\\b\\${l}(\\S+)`,'i')  // That word in the gbstr
        ||[,""])[1]                          // if not in gbstr, use blank str
   });
}

f("abracadabra")("1Dbw")আয় "1abracadabraDbracadabrababracadabrawbracadabra"
ডেনিস

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