কোড চ্যালেঞ্জ কাছাকাছি: সূচনা


15

এটি এই চ্যালেঞ্জের একটি অনুক্রম: চ্যালেঞ্জের কাছাকাছি কোড: পূর্ণসংখ্যার যোগফল

এটির মধ্যে চ্যালেঞ্জটি কিছুটা শক্ত এবং একটি দুর্দান্ত শিরোনামও তৈরি করে (যে কারণে আমি এটি বেছে নিয়েছি):

দুটি স্ট্রিংয়ের মধ্যে লেভেনস্টাইন দূরত্ব গণনা করুন

শেষ চ্যালেঞ্জের মতো, এই চ্যালেঞ্জটিতে আপনার স্কোরটি আপনার কোড এবং উপরের উদ্ধৃতিটির মধ্যে লেভেনস্টাইন দূরত্ব

তাই এখন বিস্তারিত জন্য!

আপনার প্রোগ্রামে 2 টি ইনপুট লাগবে, উভয় স্ট্রিং বিনা পিছনে থাকা স্থান বা নতুন লাইনের সাথে থাকবে এবং তাদের মধ্যে লেভেনস্টেইন দূরত্ব আউটপুট দেবে। লেভেনস্টিয়ান দূরত্বকে সংযোজন, মোছা এবং এক স্ট্রিংকে অন্য স্ট্রিংয়ে রূপান্তর করতে প্রয়োজনীয় বিকল্পগুলির সংখ্যা হিসাবে সংজ্ঞায়িত করা হয়। এটি কীভাবে গণনা করা যায় সে সম্পর্কে আরও তথ্যের জন্য, উপরে লিঙ্কিত উইকিপিডিয়া পৃষ্ঠাটি দেখুন। আপনার প্রোগ্রামটি কাজ করে কিনা তা পরীক্ষা করতে এই ক্যালকুলেটরটি ব্যবহার করুন । আপনার প্রোগ্রামটি অবশ্যই দুটি স্ট্রিংয়ের মধ্যে লেভেনস্টেইনের দূরত্ব ব্যতীত আর কিছুই আউটপুট পাবে না। অন্য কিছু আউটপুট করা হলে এটি অযোগ্য ঘোষণা করা হবে। আই / ও উদাহরণ:

Inputs:
test
test2
Output:
1

Inputs:
222
515
Output:
3

Inputs:
Test
test
Output:
1

আপনার কোডটিতে কোনও বিকল্প বা মন্তব্য নাও থাকতে পারে।

উত্তর:


9

ঝাঁকুনি , দূরত্ব 24

Calculate[the,Levenshtein]:=editDistance[the,Levenshtein]

এটি ব্যবহার করতে, আপনি দুটি স্ট্রিং দিয়ে ক্যালকুলেটকে কল করবেন এবং যেহেতু এটি ফিরছে, আপনাকেও কলটি ঘিরে ফেলতে হবে print[]। যদি এটি অনুমোদিত না হয় তবে আমার স্কোর 30।

উদাহরণ:

Calculate["kitten","spork"]        -> returns 6
print[Calculate["kitten","spork"]] -> prints 6.

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


চুপ। হে! এখানে প্রতীকী কিছু একটি Levenshtein বাস্তবায়ন আমি কাজ করছি: k=λ:Δ(ί,ί)


3
আকর্ষণীয় ভাষা, ম্যাথমেটিকার কথা মনে করিয়ে দেয়।
অ্যালেক্স এ।

চ্যালেঞ্জটি সমাধানের জন্য এটি একটি অন্তর্নির্মিত ফাংশন ব্যবহার হিসাবে গণ্য হয়েছে, যা একটি মানক লুফোল হিসাবে বিবেচিত হতে পারে (তবে এই চ্যালেঞ্জের সমস্ত উত্তরের 90℅ বলে মনে হয়)
জন ডিভোরাক

1
@ জানডভোরাক বিল্ট-ইনগুলি ধূসর অঞ্চলের মতো, যেহেতু একটি মানক লুফোলটি অর্ধ-অর্ধের কাছাকাছি হওয়ায় মেটা উত্তর তালিকাভুক্ত বিল্ট-ইনগুলিতে ভোটের বিভাজন।
অ্যালেক্স এ।

5

আর, দূরত্ব 35

Calculate=function(the,Levenshtein)adist(between<-the,two<-Levenshtein)

এটি Calculateপরামিতি theএবং সহ একটি ফাংশন তৈরি করে Levenshtein। এটি adistদূরত্ব গণনা করতে আর বিল্ট-ইন ফাংশন ব্যবহার করে। স্ট্রিং প্যারামিটারগুলি adistমূলত theএবং Levenshteinপুনরায় নামকরণ করা হয় betweenএবং two


5

PHP4.1, দূরত্ব 32 22 15 14

খুব বেসিক এক, উত্তেজনাপূর্ণ কিছুই।

<?=$Calculate_the=Levenshtein($distance,$between_two_strings);

বা একটি সংক্ষিপ্ত সংস্করণ:

<?=$ulatethe=Levenshtein($istance,$etweentwostrin);

এটি কাজ করার জন্য, আপনাকে কীগুলির সাথে একটি পোষ্ট / জিইটি / কুকি / সেশন ভেরিয়েবল প্রেরণ / সেট করতে হবে:

  • distance( istanceসংক্ষিপ্ততর জন্য)
  • between_two_strings( etweentwostrinসংক্ষিপ্ততর জন্য)

যুক্তিগুলি সেই ক্রমে রয়েছে।

Http://ideone.com/QzNZ8T এ স্কোরটি পরীক্ষা করুন

উদাহরণ:

http://localhost/distance.php?distance=string1&between_two_strings=string2

@ অ্যাবোভফায়ার দুঃখিত, তবে আমি আপনার সম্পাদনাটি গ্রহণ করতে পারি না। ওপিকে উদ্ধৃত করা: "Your code may not have no-ops or comments."এবং আপনার সম্পাদনাটি একটি HTML মন্তব্য যুক্ত করেছে।
ইসমাইল মিগুয়েল

2

পিএইচপি, দূরত্ব 44

function Calculate($two,$strings){echo levenshtein($two,$strings);}

levenshteinপিএইচপি স্ট্যান্ডার্ড লাইব্রেরি থেকে অন্তর্নির্মিত ফাংশনটি ব্যবহার করুন এবং দূরত্বকে হ্রাস করার চেষ্টা করার জন্য আর্গুমেন্টগুলির নাম দিন।


1
এটা করা উচিত নয় $two,$strings?
ইসমাইল মিগুয়েল

আসলে, এটা করা উচিত।
0 回 帰

1
এছাড়াও, আপনি একটি মিস করছেন;
ইসমাইল মিগুয়েল

আমি আপনাকে 28 এর দূরত্ব সহ একটি সমাধান প্রস্তাব দিচ্ছি:echo$Calculate_the=levenshtein($_GET[distance_between_two],$_GET[strings]);
ইসমাইল মিগুয়েল

2

পিপ, দূরত্ব 50

লেভেনস্টেইনের কোনও বিল্টিন ব্যবহার করে না!

xINg?#JgMN[1+(fac:b@>1)1+(fe:a@>1b)(a@0NEb@0)+(fec)]

এই কোডটি পুনরাবৃত্তকারী লেভেনস্টেইন অ্যালগরিদম প্রয়োগ করে ; যেমন, এটি অত্যন্ত ধীর গতির, এমনকি দৈর্ঘ্যের স্ট্রিংয়ের জন্যও কয়েক সেকেন্ড সময় নেয় 5. আমি এটি পরীক্ষা করার জন্য নিজেই প্রোগ্রামটি চালানোর পরামর্শ দিচ্ছি না!

শ্বেত স্পেস এবং মন্তব্য সহ এখানে আমার বেস কোডটি রয়েছে:

; Note: a Pip program is an implicit function f, which is called with the command-line
; arguments. The args are stored in the list g, as well as being assigned to the local
; variables a-e.

; Is one of the args the empty string? (NB x is initialized to "")
x IN g ?
 ; If so, join args together and take the length (i.e., length of the non-empty string).
 # J g
 ; If not, take the min of the following:
 MN [
  ; Recursively call f with the first character of a removed; add 1 to the result
  (f a@>1 b) + 1
  ; Recursively call f with the first character of b removed; add 1 to the result
  (f a b@>1) + 1
  ; Recursively call f with the first characters of both removed; iff the two characters
  ; were not equal, add 1 to the result
  (f a@>1 b@>1) + (a@0 NE b@0)
 ]

চূড়ান্ত সংস্করণ প্রধান পরিবর্তন অস্থায়ী ভেরিয়েবল কিছু মান নির্ধারণের হয় cএবং eযা চ্যালেঞ্জ স্ট্রিং মধ্যে প্রদর্শিত এবং এইভাবে Levenshtein দূরত্ব একটু কমানো।

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