Light OJ - 1396 - Palindromic Numbers (III) - Tutorial

এই প্রব্লেমের টিউটরিয়াল পড়ার আগে নিজে নিজে ট্রাই কর। মজার ব্যাপার হলো আমি এই প্রব্লেম এর প্রথম যে কোড টা করেছিলাম সেটা ছিলো প্রায় ৪০০ লাইনের একটা কোড। যদিও পরে অনেক অপটিমাইজ সল্যুশন ঘাটার পর যা যা অবজার্ব করেছি সেটাই লিখছি।

১। প্রথমে স্ট্রিং টা কে দুইভাগে ভাগ করে ২য় ভাগ টা ১ম ভাগ দ্বারা রিপ্লেস করে এটা কে প্যালিন্ড্রোম বানাও। মানে ১২৩৪৫ থাকলে সেটা হয়ে যাবে ১২৩২১। এবার যে স্ট্রিং টা পাবা সেটা যদি আগের স্ট্রিং থেকে বড় হয় তবে সেটাই এন্সার।

২। আর যদি না হয়! তবে মিড ভ্যালু থেকে ০ ইন্ডেক্সের দিকে রওনা হও -_- । ৯ এর ছোট কোন ডিজিট পেলেই সেটা এক ইনক্রিমেন্ট করে ব্রেক করে লুপ থেকে বেরিয়ে যাও। আর এর আগে যতো ৯ পাবে সব ০ বানিয়ে দিবে।

৩। এখন মনে কর তুমি ৯ এর ছোট কোন ডিজিট ই পাও নি! তার মানে প্রথম ডিজিট ০। সেক্ষেত্রে তোমাকে স্ট্রিং এর শুরুতে একটা এক্সট্রা ডিজিট ১ যোগ করতে হবে।

৪। এরপর বর্তমান স্ট্রিং টার ক্ষেত্রে আবার স্টেপ ১ এপ্লাই কর। তবে এটাই হবে এন্সার।

HAPPY CODING -_-

Comments

Trending Post

GCD of all numbers of given range of the array with point update

SPOJ - PARSUMS - Nonnegative Partial Sums with Sliding Range Minimum Query

LeetCode - Single Number III