লেক্সিকোগ্রাফিকাল স্ট্রিং প্রব্লেম সল্ভিং । Details about Lexicographical string in Problem solving. lexicographical_compare
A lexicographical comparison is the kind of comparison generally used to sort words alphabetically in dictionaries; It involves comparing sequentially the elements that have the same position in both ranges against each other until one element is not equivalent to the other.
লেক্সিকোগ্রাফিকাল স্ট্রিং নিয়ে একটা প্রব্লেম সল্ভ করতে গিয়ে আমি এটার মুখোমুখি হই ।
আগে কখনো জানতাম ই না এমন কিছু আছে !
যাইহোক নতুন কিছু শিখতে পারলাম ।
যা শিখেছি , তা ই নিজের মতো করে ছোট্ট করে নোট করে রাখার চেষ্টা করছি এখানে ।
প্রথমেই বলে নেই ,
একটা স্ট্রিং এর মাঝে লেক্সিকোগ্রাফিকাল অর্ডার বলতে আসলে কী বুঝি ?
এটা দ্বারা আসলে এলফাবেটিক অর্ডার বুঝায় । একটা উদাহরণ দিলে পরিষ্কার হবে ধারণা ।
যেমন একটা স্ট্রিং "abs"
এবং আরেকটা স্ট্রিং "abz"
এখানে সাধারণ ভাবে যদি তোমাকে জিজ্ঞেস করা হয় " ২টা স্ট্রিং এর লেংথ কত ?"
উত্তর টা অবশ্যই হবে যে " সমান "
কারণ ২টাতেই আছে ৩টা করে ক্যারেক্টার ।
কিন্তু এখন যদি বলা হয় স্ট্রিং গুলোর মাঝে কোনটার লেংথ লেক্সিকোগ্রাফিকালি বেশি বা কোন টা বড় ?
তাহলে উত্তর হবে ২য় টা বড় ।
কারণ কি ?
দেখো , ab পর্যন্ত ২টা স্ট্রিং ই ঠিক ছিলো । কিন্তু পরে একটা তে s এসেছে অন্য টা তে z এসেছে ।
তো এখানে আমার যে ক্যারেক্টার এর সাথে মিসম্যাচ হলো তাদের এলফাবেটিক অর্ডার দেখবো ।
এলফাবেটিক অর্ডার এর দিকে খেয়াল করলে দেখা যাবে s অনেক আগে এবং z অনেক পরে , একদম শেষে ।
a,b,c,d,e,f................k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
তাহলে দেখতে পেলাম s এবং z এর মাঝে অনেক গুলো ক্যারেক্টার ই বাদ পড়েছে ।
যেহেতু এলফাবেটিকাল অর্ডার এ আগে আর পরে তাই বলতে হবে ২য় স্ট্রিং টার লেংথ ই
লেক্সিকোগ্রাফিকালি বড় ।
এখন মনে মনে একটা জিনিস ই তোমার কাজ করছে ,সেটা হলো প্রোগ্রামে সেটা কীভাবে ইমপ্লিমেন্ট করবো ?
অস্থির হওয়ার কিছু নেই ।
এটা খুব ই সিম্পল । শুধু মাত্র একটা ফাংশন ইউজ করেই তুমি জানতে পারবে কে কার চাইতে লেক্সিকোগ্রাফিকালি বড় ।
lexicographical_compare()
নামে একটা ফাংশন আছে , সেটাই তোমাকে বলে দিবে কে বড় । বিস্তারিত উদাহরণ সহ বলা আছে
এই লিঙ্কে এবং
এই লিঙ্কে
রাত ০৯ঃ২১
০৫-০২-২০২০
Written By -