একটি ডি * এমএন দ্ব্যর্থহীন সেন্সর লিখুন


16

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

তোমার কাজ

একটি প্রোগ্রাম / ফাংশন / যা দুটি তালিকা এবং একটি স্ট্রিং লাগে তা লিখুন। প্রথম তালিকাটি মত আপনার ভাষায় সব শব্দের অভিধান হবে: ["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]। পরবর্তী সব ধারণকারী প্রথম তালিকার উপসেট হবে আক্রমণাত্মক ভাষায় শব্দ: ["belgium", "offensive"]। এই তালিকাগুলির শব্দগুলি বর্ণমালার কেবল ছোট হাতের অক্ষর ধারণ করার গ্যারান্টিযুক্ত।

স্ট্রিংটি আপনাকে সেন্সর করতে হবে এমন বাক্য। এটি অভিধান থেকে শব্দের দ্বারা তৈরি করা হবে, স্পেস দ্বারা পৃথক করা:"Goodbye offensive belgium"

রিটার্ন মানটি হবে সেই বাক্যাংশটি সেন্সর করা। তবে আপনাকে একটি নির্দিষ্ট উপায়ে সেন্সর করতে হবে। বিশেষত, আক্রমণাত্মক তালিকার প্রতিটি শব্দের জন্য, আপনাকে মূল অভিধানে সম্পূর্ণ দ্ব্যর্থহীন অবস্থায় যতটা সম্ভব অক্ষর সেন্সর করতে হবে তাই এখানে এটি হবে: Goodbye o******** b******

ব্যাখ্যা

  • আপনার কোডে শব্দটি সংবেদনশীলতার সাথে ব্যাখ্যা করতে হবে, তবে প্রাথমিক মূলধন দিয়ে ফিরে আসবে।
  • যদি একাধিক অনুকূল উত্তর থাকে তবে সেগুলির মধ্যে যে কোনও একটি বেছে নিন।
  • যদি দ্ব্যর্থহীন সেন্সর করা অসম্ভব, তবে এমন একটি একক বর্ণকে সেন্সর করুন যাতে অন্যান্য সম্ভাব্য ব্যাখ্যার সর্বনিম্ন সংখ্যা থাকে (যদি একাধিক সম্ভব হয় তবে, এটি আপনার পছন্দ)।

পরীক্ষার কেস

["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
["word"] ["word"] "word" -> "****"
["hot", "hat", "bat", "had"] ["hat"] "hat" -> "*at" or "h*t" or "ha*"
https://gist.github.com/deekayen/4148741 ["quart"] "I am a quart" -> "I am a q**r*"

এটি তাই বাইট জেতে সংক্ষিপ্ততর ডি * এমএন কোড!

পিএস কেউ বেলজিয়ামের সাথে রেফারেন্স ধরলেন? ; p


আপনার ব্যাখ্যায় আপনি বলছেন ["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"কিন্তু পরীক্ষার কেসগুলি বলছে পরীক্ষার কেসটি ["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye offensive b******" ভুল, সঠিক?
জেরি যিরমিয়

@ জেরি জেরেমিয়া স্থির করেছেন
মালটিসেন

5
আমি "বি * লিগিয়াম" এর মত মন্তব্যগুলি শৈল্পিক কিছুতে সীমাবদ্ধ করার জন্য আপনাকে ধন্যবাদ জানাব।
হিস্টোক্র্যাট

2
@ orlp আমার ধারণা আমার প্রশ্নটি যথেষ্ট পরিষ্কার নয়। এই সেন্সরযুক্ত বার্তাগুলির "পাঠক" সেন্সর তালিকার উপস্থিতি সম্পর্কে অবগত নয়। তারা কেবল মূল আদেশটি জানেন।
মালটিসেন

1
@ মাল্টেসেন - ইস্যুটি ব্যাখ্যা করার পরেও কেবল জাফোদ নিজে খালি টেক্সটে বি ****** এর মতো শব্দ ব্যবহার করার জন্য যথেষ্ট সাহসী হয়ে উঠবেন। আমি বিষ্মিত. আপনি অবশ্যই একটি হুপি ফ্রিড না!
অ্যালকিমিস্ট

উত্তর:


1

জাভাস্ক্রিপ্ট ES7, 194 বাইট

(d,c,s,g=(a,b)=>[...b].reduce((z,l,i)=>z+(a[i]==l?1:0),0))=>[for(s of s.split` `)~d.indexOf(s)?[...c[(x=[for(i of c)g(i,s)]).indexOf(Math.max(...x))]].map((l,i)=>l!=s[i]?`*`:l).join``:s].join` `

একটি খুব বড় ফাংশন। আমি অনুমান করছি কিছু বাইট গল্ফ করা যেতে পারে তবে আমি যদি এটির কাজ করার পদ্ধতিটি পুরোপুরি পরিবর্তন না করি তবে বেশি না।

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