কোপোডোপ গোপলপফপ


15

ভাষা: আপত্তি

প্রতিটি কথায় নিম্নলিখিত প্রক্রিয়াটি প্রয়োগ করে কথা বলার জন্য একটি মজার ভাষা তৈরি করা হয়:

  1. opপ্রতিটি ব্যঞ্জনবর্ণের পরে রাখুন । তাই Codeহয়ে যায় Copodope

হ্যাঁ, এটা। এই চ্যালেঞ্জের উদ্দেশ্যে, yসর্বদা ব্যঞ্জনাযুক্ত।

চ্যালেঞ্জ: ডি-অলপিকেশন

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

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

Oppified      ->         Original 
a                        a
I                        I
itop                     it
opop                     op
Opop                     Op
popopop                  pop
Copopop                  Cop
opopopop                 opop
Kopicopkop               Kick
Asopia                   Asia
soptopopop               stop
hopoopopsop              hoops
hopoopopedop             hooped
ooooohop                 oooooh
aaaopopaaa               aaaopaaa
Popopopsopicoplope       Popsicle
gopaloplopopopinopgop    galloping
aopopbopopopcopopop      aopbopcop

8
আপনার পরীক্ষার কোনও মামলায় স্বর নেই যার পরে opকোনও উত্তর replace(/(.)op/, '\1')ব্যর্থ হবে না of আমি আপনাকে পরামর্শ দিচ্ছি যে তোমার মত শব্দ যোগ hoopবা loopedপরীক্ষার বিষয় হতে।
ডুরকনবব

@ mbomb007 আমি আরও কিছু জটিল পরীক্ষার কেস যুক্ত করেছি।
xnor

উত্তরের কি কেবল পূর্বনির্ধারিত ইনপুট বা সমস্ত ইনপুটগুলির জন্য কাজ করতে হবে?
ক্যালকুলেটরফলাইন

@ ক্যালকুলেটরফলাইন "একটি বিরোধিত শব্দ দেওয়া হয়েছে"
এমবিম্ব ২০০7

2
আমরা কি পরীক্ষার কেস হিসাবে "মোপমপমপবপপপ" যুক্ত করতে পারি? :)
ব্যবহারকারী 2390246

উত্তর:


10

ভি , 12 , 5 বাইট

Í.“op

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

00000000: cd2e 936f 70                             ...op

@ এক্সনোর বুঝতে পেরে 7 বাইট সংরক্ষণ করা হয়েছে যেহেতু ইনপুটটি সর্বদা বিরোধিত করা উচিত তাই আমাদের স্বরগুলি পরীক্ষা করতে হবে না।


হুম,
এটাকে

4
হেক্স ডাম্প: ...op আমাকে তার হাসির চেয়ে আরও শক্ত করে
তুলছে

12

রেটিনা , 9 বাইট

(?!\G)op

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

পূর্ববর্তী চরিত্রটি একটি ব্যঞ্জনবিন্দু কিনা তা যাচাই করার পরিবর্তে আমরা কেবল এটি নিশ্চিত করে নিই যে বর্তমানটি opস্ট্রিংয়ের শুরু বা পূর্ববর্তী ম্যাচের সাথে সংলগ্ন নয়। একমাত্র ক্ষেত্রে যেখানে আমরা কোনও ভুলের সাথে মেলে ফেলতে পারি opতা যদি মূল স্ট্রিংটিতে একটি থাকে op(ফলস্বরূপ opop)। তবে সেক্ষেত্রে আমরা কেবল opদ্বিতীয়টির পরিবর্তে প্রথমটি সরিয়ে ফেলব এবং ফলাফলটি একই হবে।


এটি কি কোনও ইনপুটটির মতো ভুল উত্তর দেবে না loop?
লিও

4
@ লিও loopএকটি বৈধ ইনপুট নয় কারণ আপনি এটি অন্য শব্দের বিরোধিতা থেকে অর্জন করতে পারবেন না।
মার্টিন ইন্ডার

@ মার্টিনএেন্ডার তবে lopoop(এর বিপরীত সংস্করণ loop) বৈধ, এবং এতে ডি-অরপেক্ট হবে না loop
ইমাস

@Imus না, এর oppified সংস্করণ loopহয় lopoopop
মার্টিন ইন্ডার

আমার ভুলটিও পোস্ট করার পরে খুব তাড়াতাড়ি বুঝতে পেরেছিলাম :) মুছে ফেলার ক্ষেত্রে খুব ধীর ছিল। ভাল যুক্তি.
ইমাস

10

পাইথন , 42 বাইট

lambda s:re.sub('(.)op',r'\1',s)
import re

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

যদি আমি ভুল না করে থাকি, আপনি শুধু সব প্রতিস্থাপন করতে পারেন ?opসঙ্গে ?স্বরবর্ণ বিষয়ে চিন্তা ছাড়াই। যদি মূল স্ট্রিংটি থাকে opতবে এর বিরোধিতা করা হবে opopএবং প্রতিস্থাপনটি এটিকে ফিরিয়ে দেয় এবং opআর কোনও কিছু করে না। এটি হ'ল কারণের প্যাটার্নটি মেলে ?opওভারল্যাপ করতে পারে না, তাই কেবলমাত্র একটি opসরানো হয়।

একটি নন-রেজেক্স সমাধান 5 বাইট দীর্ঘ।

পাইথন , 47 বাইট

f=lambda s:s and s[0]+f(s[1+2*(s[1:3]=='op'):])

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


3
আপনি এটি উল্লেখ করার re পরে আমদানি করতে পারবেন
অ্যাডম

4
@ অ্যাডম পাইথন যখন ফাংশনটি সংজ্ঞায়িত করা হয় কেবল তখনই তা মূল্যায়ন করে না।
xnor

4
বাহ, আমি যখনই দেখেছি যে কেউ একটি আন্তঃব্যাঙ্গ ব্যবহার করছে। আমার ধারণা এটি আপনার মন্তব্যকে একটু গল্ফ করার একটি উপায়।
বাল্ড্রিক

1
@ বালড্রিক কস কিন্তু বাইটে , ইন্টারোবাংয়ে> = বাইট রয়েছে কেবল স্ট্রিং "?!"?
মিল্কিওয়ে 90

5

পার্ল 5 , 10 + 1 = 11 বাইট

s/.\Kop//g

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

-p(1 বাইট পেনাল্টি) দিয়ে চালান ; গল্ফিং ল্যাঙ্গুয়েজগুলি স্বয়ংক্রিয়ভাবে অন্তর্নিহিত I / O করতে পারে তবে পার্লকে এর জন্য একটি বিকল্পের প্রয়োজন।

আমি যখন @ xnor এর উত্তর দেখেছি তখন বুঝতে পারলাম পার্ল-নির্দিষ্ট রেগেক্স বৈশিষ্ট্যটি ব্যবহার করে এটি উন্নত করা যেতে পারে; s/a\Kb/c/gএর সমতুল্য s/ab/ac/g(অন্য কথায়, s///প্রথমগুলির পরে একমাত্র জিনিসগুলি প্রতিস্থাপন করে \K)। পার্লে এটি কেমন দেখাচ্ছে তা এখানে।


5

রেটিনা , 15 8 বাইট

(.)op
$1

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

-7 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ


2
আপনি প্রতিস্থাপন 7 বাইট সংরক্ষণ করতে পারবেন [^aeiou]সঙ্গে .তার পাইথনের উত্তরে @ এক্সনরের ব্যাখ্যা দেখুন ।
কেভিন ক্রুইজসেন


3

হাস্কেল (93 62 61 বাইট)

a(x:'o':'p':r)|notElem x"aeiouAEIOU"=x:a r
a(x:r)=x:a r
a x=x

মন্তব্যগুলিতে @ নিমিমির পরামর্শকে ধন্যবাদ!


2
কিছু টিপস: আপনি যেমন ব্যবহার করছেন vএবং oকেবল একবার, আপনি এটি ইনলাইন করতে পারেন। notElemতুলনায় খাটো not(...elem...)। আপনি এটিকে &&একটি গার্ডের সাথে প্রতিস্থাপন করতে পারেন ,। জন্য শেষ মামলা aহিসাবে লেখা যেতে পারে a x=x। জন্য কোন প্রয়োজন নেই ()মধ্যে x:(a r)
নিমি

1
... ওহ, এবং এর জন্য পরীক্ষাটি =="op"একটি আক্ষরিক প্যাটার্ন ম্যাচের সাথে প্রতিস্থাপন করা যেতে পারে:a(x:'o':'p':r)|notElem x"aeiouAEIOU"=x:a r
নিমি

আপডেট করা হয়েছে। ধন্যবাদ @ নিমিমি
ডেভিড

1
সংরক্ষণের জন্য আরও একটি বাইট: আপনি xএবং এর মধ্যে স্থানটি বাদ দিতে পারেন "
নিমিম

3

পিএইচপি , 36 বাইট

<?=preg_replace("#.\Kop#","",$argn);

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


এটি কিভাবে চালানোর কথা?
তিতাস

এটি প্রথম দুটি পরীক্ষার ক্ষেত্রে ব্যর্থ হয়। preg_replaceঠিক করতে ব্যবহার করুন ।
তিতাস

যে কোনও একক চরিত্রে পরিবর্তনশীলটির নাম পরিবর্তন করে আপনি 3 বাইট সংরক্ষণ করতে পারেন, উদাহরণস্বরূপ
জাঙ্কফুডজুনকি

@ জঙ্কফুডজুনকি $argnএকটি সংরক্ষিত পরিবর্তনশীল যা পিএইচপি -Rকমান্ড লাইন থেকে অপশন সহ চালানো হয়
জার্গ হালসারম্যান

আহ, ঠিক আছে, এটা জানতেন না। অনলাইন পরীক্ষক এটির জন্য অ্যাকাউন্ট করে না। :-)
জাঙ্কফুডজুনকি


1

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

যোগ f=শুরুতে মত ডাকা f(arg)

s=>s.replace(/([^aeiou])op/gi,"$1")

আমি অবাক হয়ে এখনও কেউ একটি জাভাস্ক্রিপ্ট সমাধান পোস্ট করেনি ....

পরীক্ষার স্নিপেট

let f=
s=>s.replace(/([^aeiou])op/gi,"$1")

console.log("a" + " -> " + f("a"));
console.log("I" + " -> " + f("I"));
console.log("itop" + " -> " + f("itop"));
console.log("opop" + " -> " + f("opop"));
console.log("Opop" + " -> " + f("Opop"));
console.log("popopop" + " -> " + f("popopop"));
console.log("Copopop" + " -> " + f("Copopop"));
console.log("opopopop" + " -> " + f("opopopop"));
console.log("Kopicopkop" + " -> " + f("Kopicopkop"));
console.log("Asopia" + " -> " + f("Asopia"));
console.log("soptopopop" + " -> " + f("soptopopop"));
console.log("hopoopopsop" + " -> " + f("hopoopopsop"));
console.log("hopoopopedop" + " -> " + f("hopoopopedop"));
console.log("ooooohop" + " -> " + f("ooooohop"));
console.log("aaaopopaaa" + " -> " + f("aaaopopaaa"));
console.log("Popopopsopicoplope" + " -> " + f("Popopopsopicoplope"));
console.log("gopaloplopopopinopgop" + " -> " + f("gopaloplopopopinopgop"));
console.log("aopopbopopopcopopop" + " -> " + f("aopopbopopopcopopop"));



0

/// , 18 বাইট

/op/.//../o\p//.//

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

নোট করুন যে এই স্নিপেটটি opএকটি দ্বারা প্রতিস্থাপন করতে চায় .তবে পরে সেখানে একটি প্রতিস্থাপন সংজ্ঞায়িত করা হয়েছে যেখানে opস্ট্রিংয়ে আবার রেখে দেওয়া হচ্ছে। এই দ্বিতীয় নির্দেশটি opএকটি দ্বারা প্রতিস্থাপিত হবে .(এবং এইভাবে .শেষের ফলাফলটিতে একটি সন্নিবেশ করায়), সুতরাং আমি প্যাটার্নটি ভেঙে ফেলার জন্য এবং এর \মধ্যে একটি ব্যবহার করেছি ।op



0

স্ফটিক, 39 বাইট

def o(s)s.gsub(/([^aeiou])op/,"\\1")end

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

এটি কেবল প্রতিটি ব্যঞ্জনবর্ণের জন্য অনুসন্ধান করে, তারপরে ক্রমটি অনুসরণ করে op। যদি তাই হয়, প্রতিস্থাপন যে ক্রম ব্যঞ্জনবর্ণ শুধুমাত্র সঙ্গে সামনে পাওয়া গেছে: ([^aeiou])

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



0

রুবি , 34 27 22 + 1 = 23 বাইট

-4 বাইট ধন্যবাদ RJHunter।

-pপতাকাটির জন্য +1 বাইট ।

$_.gsub!(/(.)op/,'\1')

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


রুবির -pবিকল্প ব্যবহার করতে একটি বাইট খরচ পড়বে তবে আপনার স্ক্রিপ্টটি সরাসরি শুরু করার অনুমতি দেবে gsub
আরজেহান্টার

0

সেড, 22 বাইট

sed -E 's/(.)op/\1/g'

এসটিডিইএন থেকে ইওএফ পর্যন্ত পড়ুন এবং ডি-অলফিস্টার্ড স্ট্রিংকে আউটপুট দেয় @ xnor এর পাইথন উত্তর
থেকে একই দৈর্ঘ্য হ্রাস কৌশলটি ব্যবহার করে


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