কম্পিউটার টিউটোরিয়াল

C++ কোড: রটারি ডায়ালে স্ট্রিং প্রিন্ট করার জন্য ঘুরানোর সংখ্যা গণনা

একটি রটারি ডায়ালে ইংরেজি বর্ণমালার ছোট হাতের অক্ষরগুলো থাকে। একটি প্রিন্টার ডায়ালের পয়েন্টারের নিচে যে অক্ষর ৩ সেকেন্ড থাকে, সেটি প্রিন্ট হয়। ডায়াল প্রাথমিকভাবে 'a'-তে থাকে এবং প্রিন্ট করার পর রিসেট হয়না। একটি স্ট্রিং s দেওয়া আছে, এটিকে প্রিন্ট করতে হবে। ডায়াল একটি অক্ষর থেকে অন্য অক্ষরে যেতে একবার ঘুরাতে হয়। মোট কতবার ঘুরাতে হবে তা বের করতে হবে।

সমাধানের ধাপসমূহ

বর্তমান অবস্থান থেকে লক্ষ্য অক্ষর পর্যন্ত ঘুরানোর দুটি পথ আছে: ঘড়ির সূইয়ের দিকে বা উল্টে দिशায়। ন্যূনতম দূরত্ব নিতে হবে। প্রতিটি অক্ষরের জন্য ন্যূনতম দূরত্ব যোগ করুন।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

int solve(string s) { 
    char t = 'a'; 
    int res = 0; 
    for(int i = 0; i < s.size(); i++) { 
        res += min(abs(t - s[i]), 26 - abs(t - s[i])); 
        t = s[i]; 
    } 
    return res; 
} 

int main() { 
    string s = "elephant"; 
    cout << solve(s); 
    return 0; 
}

ইনপুট

"elephant"

আউটপুট

63

ব্যাখ্যা

s = "elephant" এর জন্য প্রতিটি অক্ষর পরিবর্তনের ন্যূনতম ঘুরানোর সংখ্যা যোগ করলে মোট ৬৩টি রোটেশন লাগে।

  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ দিয়ে অন্য একটি স্ট্রিংএ এক স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  3. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  4. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন