আপনার উত্স লেভেনস্টাইন


11

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

উদাহরণস্বরূপ, এর মধ্যে দূরত্ব 3 rollএবং rollingকারণ মুছে ফেলার জন্য 1 টি খরচ হয় এবং আমাদের 3 টি অক্ষর মুছতে হবে। tollএবং এর মধ্যে দূরত্ব tall1, কারণ প্রতিস্থাপনের জন্য ব্যয় হয় 1।

আসল লেভেনস্টেইন প্রশ্ন থেকে চুরি হয়েছে

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

বিধি

  • ইনপুটটি খালি নয় এবং ASCII এর সমন্বয়ে গঠিত হবে, যদি না আপনার উত্সটিতে নন-এএসসিআইআই থাকে, তবে ইনপুটটিতে ইউনিকোড অন্তর্ভুক্ত থাকতে পারে। নির্বিশেষে, লেভেনস্টাইন দূরত্বগুলি বাইট নয়, অক্ষরে পরিমাপ করা হবে।

  • আউটপুট হ'ল ইনপুট এবং আপনার উত্সের সর্বনিম্ন লেভেনস্টেইন সম্পাদনার দূরত্ব।

এটি , তাই সংক্ষিপ্ত উত্তর, বাইটে, জিতে।



8
আমি নিজেই যখন চালাচ্ছিলাম তখন স্কোরটিকে আপনার প্রোগ্রামের আউটপুট তৈরি করার পরামর্শ দিতে যাচ্ছিলাম তবে আমি বুঝতে পেরেছিলাম ...
ইটিএইচ প্রডাকশনগুলি


@ ইথ প্রডাকশনস আপনি কীভাবে এটি ভেবেছিলেন? o_o
এরিক দ্য আউটগল্ফার

রেটিনা খালি প্রোগ্রাম দিয়ে এটি জয়ের এত কাছাকাছি ...
লিও

উত্তর:



4

পাইথন 2 , 278 258 বাইট

t=input();s,f='t=input();s,f=%r,lambda m,n:m or n if m*n<1else-~min(f(m-1,n),f(m,n-1),f(m-1,n-1)-((s%%s)[m-1]==t[n-1]));print f(len(s%%s),len(t))',lambda m,n:m or n if m*n<1else-~min(f(m-1,n),f(m,n-1),f(m-1,n-1)-((s%s)[m-1]==t[n-1]));print f(len(s%s),len(t))

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

এই উত্তর থেকে লেভেনস্টেইন অ্যালগরিদমের সাথে মিশ্রিত পাইথনের এটি কেবল স্বাভাবিক কুইন । নোট করুন যে এটি বেশ চূড়ান্ত হয়ে পড়েছে (মিঃ এক্সকোডারকে ধন্যবাদ: পি) ধীর গতিতে।


এটি l(s%s,input())(নিশ্চিত নয়) জন্য কাজ করে ?
মিঃ এক্সকোডার

0

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

এটি একটি বৈধ কুইন।

f=t=>[...t].map((v,j)=>x=x.map((w,k)=>q=k--?Math.min(q,w,x[k]-(v==u[k]))+1:j+1),x=[...[,...u=`f=${f}`].keys()])|q

f=t=>[...t].map((v,j)=>x=x.map((w,k)=>q=k--?Math.min(q,w,x[k]-(v==u[k]))+1:j+1),x=[...[,...u=`f=${f}`].keys()])|q

console.log(f('f=t=>[...t].map((v,j)=>x=x.map((w,k)=>q=k--?Math.min(q,w,x[k]-(v==u[k]))+1:j+1),x=[...[,...u=`f=${f}`].keys()])|q'));
console.log(f('%'));
console.log(f('12345'));

অন্যান্য উত্তর থেকে আইডিয়া চুরি হয়েছে।


"এটি একটি বৈধ কুইন" - আসলে, আমি নিশ্চিত নই যে আপনি যে মেটা থ্রেডে লিঙ্ক করেছেন তাতে কোনও স্পষ্ট sensকমত্য রয়েছে। এবং বাস্তবে, কয়েকটি ভোটের দ্বারা, "এটি প্রতারণা করছে" বিকল্পটি আসলে জিতেছে।
ফ্লিপট্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.