সোমবার মিনি-গল্ফ: সংক্ষিপ্ত কোড-গল্ফ চ্যালেঞ্জগুলির একটি সিরিজ , প্রতি সোমবার পোস্ট করা (আশাবাদী!)
(দুঃখিত এইটাকে একটু দেরি করে ফেলেছে।)
আমি নিশ্চিত যে আপনারা অধিকাংশ লোক লেভেনস্টেইন দূরত্ব শুনেছেন, দুটি স্ট্রিংয়ের মধ্যকার দূরত্ব গণনার জন্য একটি অ্যালগরিদম। ভাল, এই চ্যালেঞ্জটি আমার নিজের আবিষ্কারের * অনুরূপ একটি অ্যালগরিদম বাস্তবায়নের বিষয়ে, যাকে বলা হয় অ্যানগ্রামগ্রাম দূরত্ব । মূল পার্থক্য হ'ল চরিত্রগুলির ক্রমটি কোনও ব্যাপার নয়; পরিবর্তে, কেবল একটি অক্ষর যা একটি স্ট্রিং বা অন্যটির সাথে অনন্য meas
চ্যালেঞ্জ
চ্যালেঞ্জের লক্ষ্য হ'ল এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা দুটি স্ট্রিংয়ের মধ্যে লাগে এবং তাদের মধ্যে অ্যানগ্রামের দূরত্ব ফিরিয়ে দেয়। এটি করার প্রধান উপায় নিম্নলিখিত যুক্তি ব্যবহার করা:
- উভয় স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করুন এবং (বিকল্পভাবে) প্রত্যেকের অক্ষর বর্ণমালা অনুসারে বাছাই করুন।
- স্ট্রিংগুলিতে কমপক্ষে একটি সমান অক্ষর থাকা অবস্থায়, প্রতিটি স্ট্রিং থেকে এই অক্ষরের প্রথম উদাহরণটি সরিয়ে ফেলুন।
- অবশিষ্ট স্ট্রিংগুলির দৈর্ঘ্য যুক্ত করুন এবং ফলাফলটি ফেরত / আউটপুট দিন।
উদাহরণ
যদি ইনপুটগুলি হয়:
Hello, world!
Code golf!
তারপরে, নিম্নতর এবং সাজানো, এগুলি হয়ে যায়: (জেএসের ডিফল্ট বাছাই অনুসারে; শীর্ষস্থানগুলি নোট করুন)
!,dehllloorw
!cdefgloo
দুটি অক্ষরে থাকা সমস্ত অক্ষর মুছে ফেলা হচ্ছে, আমরা এখানেই শেষ করব:
,hllrw
cfg
সুতরাং, মূল দুটি স্ট্রিং = 6 + 3 = 9 এর মধ্যে অ্যানগ্রামের দূরত্ব।
বিস্তারিত
- স্ট্রিংগুলি যে কোনও সংবেদনশীল বিন্যাসে নেওয়া যেতে পারে।
- স্ট্রিংগুলি কেবল প্রিন্টযোগ্য এএসসিআইআই সমন্বিত থাকবে।
- স্ট্রিংগুলিতে নিয়মিত স্পেস ব্যতীত অন্য কোনও শ্বেত স্পেস থাকবে না। (কোনও ট্যাব, নিউলাইন ইত্যাদি নেই)
- যতক্ষণ না ফলাফল একই থাকে আপনার এই সঠিক অ্যালগরিদম ব্যবহার করার দরকার নেই।
টেস্ট-মামলা
ইনপুট 1:
Hello, world!
Code golf!
আউটপুট 1:
9
ইনপুট 2:
12345 This is some text.
.txet emos si sihT 54321
আউটপুট 2:
0
ইনপুট 3:
All unique characters here!
Bdfgjkmopvwxyz?
আউটপুট 3:
42
ইনপুট 4:
This is not exactly like Levenshtein distance,
but you'll notice it is quite similar.
আউটপুট 4:
30
ইনপুট 5:
all lowercase.
ALL UPPERCASE!
আউটপুট 5:
8
স্কোরিং
এটি কোড-গল্ফ , তাই বাইট জেতে সংক্ষিপ্ততম বৈধ কোড। টাইব্রেকার সাবমিশনে যায় যা তার চূড়ান্ত বাইট গণনাটি প্রথম পৌঁছেছিল। বিজয়ী পরের সোমবার, 12 অক্টোবর নির্বাচন করা হবে। শুভকামনা!
সম্পাদনা: বিজয়ীর অভিনন্দন, @ আইস্যাক, একটি চমকপ্রদ 12 বাইটের জন্য পাইথ (আবার) ব্যবহার করে !
* যদি এই অ্যালগরিদম অন্য কোথাও ব্যবহার করা হয়েছে এবং / অথবা অন্য কোনও নাম দেওয়া হয়েছে, দয়া করে আমাকে জানান! আমি 20 মিনিটের অনুসন্ধানের সাথে এটি সন্ধান করতে পারিনি।