কম্পিউটার

একটি স্ট্রিং প্রিন্ট করার জন্য ডায়াল রোটেশনের সংখ্যা খুঁজে পেতে C++ কোড


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

সুতরাং, যদি ইনপুট s ="হাতি" এর মত হয়, তাহলে আউটপুট হবে 63।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

t := 'a'
res := 0
for initialize i := 0, when i < size of s, update (increase i by 1),
do:
   res := res + minimum of (|t - s[i]|, 26 - |t - s[i]|)
   t := s[i]
return res

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
#define N 100
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

  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে অন্যটিতে উপস্থিত একটি স্ট্রিংয়ের সাবস্ট্রিংয়ের সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

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