একটি প্রোগ্রাম বা ফাংশন লিখুন যা দুটি ইনপুট নেয়:
- একটি বার্তা
- ইংলিশ ভাষার অভিধান, যেমনটি এই গিথুব ফাইলে প্রদর্শিত হবে (প্রায় 60000 শব্দযুক্ত)
এবং বার্তায় বানান ত্রুটির সংখ্যা আউটপুট করে (সংজ্ঞা এবং পরীক্ষার ক্ষেত্রে নীচে দেখুন)।
আপনি আপনার ফাংশনটির প্যারামিটার হিসাবে অভিধানটি পেতে পারেন, আপনার প্রোগ্রামটি একটি প্রাক-সংজ্ঞায়িত ফাইল হিসাবে প্রত্যাশা করে যা আপনার কোডে হার্ড কোডেড ডেটা, বা অন্য কোনও বুদ্ধিমান পদ্ধতিতে find
আপনার কোডটি নিজেই একটি সংক্ষিপ্ত সংখ্যক বানান ত্রুটির সাথে একটি পাঠ্য বার্তার মতো দেখা উচিত। সুতরাং, আপনি নিজের কোডটিকে এটিকে ইনপুট হিসাবে খাওয়ানোর মাধ্যমে স্কোর গণনা করবেন ।
বিজয়ী এমন কোড যা সর্বনিম্ন স্কোর (সর্বনিম্ন সম্ভাব্য স্কোর 0) 0 যদি একই স্কোর সহ বেশ কয়েকটি উত্তর থাকে তবে বিজয়ীর কোড আকার (অক্ষরে) দ্বারা সিদ্ধান্ত নেওয়া হয়। যদি দুটি উত্তর এখনও বাঁধা থাকে তবে বিজয়ীর পূর্ববর্তী উত্তর।
যদি প্রয়োজন হয় তবে আপনি ইনপুট বার্তাটি ASCII (বাইট 32 ... 126) হিসাবে প্রচলিত পদ্ধতিতে এনকোড করা নতুন লাইনের (1 বাইট "10" বা 2 বাইট "13 10"), এবং খালি খালি ধরে নিতে পারেন। তবে, যদি আপনার কোডটিতে অ-এএসসিআইআই অক্ষর থাকে, তবে এটি নন-এসসিআইআই ইনপুটটিকেও সমর্থন করা উচিত (যাতে এটি নিজস্ব স্কোর গণনা করতে পারে)।
অক্ষরগুলি নিম্নলিখিত শ্রেণিতে বিভক্ত করা হয়:
- চিঠিগুলি একটি ... জেড এবং এ ... জেড
- হোয়াইটস্পেস (স্পেস অক্ষর বা নিউলাইন চরিত্র হিসাবে এখানে সংজ্ঞায়িত)
- যতিচিহ্নসিন্নিবেশ
.
,
;
:
!
?
- বাক্য শেষ
.
!
?
- বাক্য শেষ
- আবর্জনা (বাকি সব)
একটি শব্দকে বর্ণের ক্রম হিসাবে সংজ্ঞায়িত করা হয়, যা সর্বাধিক (অর্থাত্ কোনও বর্ণের আগে নয় বা তার পরেও নয়)।
একটি বাক্য অক্ষরের সর্বাধিক ক্রম হিসাবে সংজ্ঞায়িত হয় যা বাক্য সমাপ্ত হয় না।
একটি অক্ষরটি একটি বানান ত্রুটি হয় যদি এটি কোনও বানানের নিয়ম লঙ্ঘন করে:
- একটি অক্ষর অবশ্যই একটি অভিধান শব্দের অন্তর্ভুক্ত থাকে (বা, অন্য কথায়: দৈর্ঘ্যের N এর প্রতিটি শব্দ যা অভিধানে এন বানান ত্রুটি হিসাবে গণনা করা হয় না)
- কোনও বাক্যটির প্রথম অক্ষর, কোনও প্রাথমিক শ্বেতক্ষেত্রের অক্ষর উপেক্ষা করে অবশ্যই বড় হাতের অক্ষর হওয়া উচিত
- পূর্ববর্তী নিয়ম অনুসারে বর্ণিত অক্ষরগুলি বাদে সমস্ত বর্ণ অবশ্যই নিম্নের হতে হবে
- একটি বিরামচিহ্ন অক্ষর কেবল কোনও চিঠি বা আবর্জনার পরে অনুমোদিত হয়
- একটি বাক্য-সমাপ্তি অক্ষরের পরে একটি নতুন লাইন অক্ষর অনুমোদিত হয়
- বার্তাটির শুরুতে এবং সাদা স্থানের অক্ষরের পরে শ্বেতস্পেসের অক্ষরগুলি অনুমোদিত নয়
- কোনও আবর্জনা থাকতে হবে না (বা, অন্য কথায়: প্রতিটি আবর্জনা চরিত্রের গণনা একটি বানান ত্রুটি)
তদতিরিক্ত, শেষ বাক্যটি অবশ্যই ফাঁকা বা সঠিকভাবে একটি নতুনলাইন চরিত্রের সমন্বয়ে গঠিত হবে (অর্থাত্ বার্তাটি একটি বাক্য-সমাপ্তি চরিত্র এবং একটি optionচ্ছিক নতুন লাইনের সাথে শেষ হওয়া উচিত - আসুন আমরা এটি নিয়ম 8 বলি)।
পরীক্ষার কেস (প্রতিটি অক্ষরের নীচে একটি নিয়ম যা এটি লঙ্ঘন করে; এর পরে =>
প্রয়োজনীয় উত্তর হয়):
Here is my 1st test case!!
711 4 => 4
main(){puts("Hello World!");}
2 777 883 3 77 78 => 12
This message starts with two spaces
66 8 => 3
What ? No apostrophe's??
4 71 4 => 4
Extra whitespace is BAD!
66 661111111111 66 66333 => 21
Several
lines?
Must be used only to separate sentences.
=> 1 (first linebreak is en error: rule 5)
"Come here," he said.
73 7 => 3 (sentence starts with '"', not 'C')