কম্পিউটার

পাইথনে একক-সারি কীবোর্ড


ধরুন, একটি একক সারিতে সমস্ত কী সহ একটি বিশেষ কীবোর্ড রয়েছে৷ তাই যদি আমাদের কাছে 26 দৈর্ঘ্যের একটি স্ট্রিং থাকে যা কীবোর্ডের বিন্যাস নির্দেশ করে (0 থেকে 25 পর্যন্ত সূচী), প্রাথমিকভাবে আমাদের আঙুলটি সূচক 0 এ থাকে। একটি অক্ষর টাইপ করতে, আমাদের আপনার আঙুলটি পরবর্তী অক্ষরের সূচীতে নিয়ে যেতে হবে। আপনার আঙুলকে সূচী i থেকে j সূচীতে সরাতে যে সময় লাগে তাকে |i - j| হিসাবে চিহ্নিত করা হয়। তাই যদি আমরা একটি স্ট্রিং টাইপ করতে চান. একটি আঙুল দিয়ে টাইপ করতে কত সময় লাগে তা গণনা করার জন্য আমাদের একটি ফাংশন সংজ্ঞায়িত করতে হবে। সুতরাং যদি ইনপুট সিকোয়েন্সগুলি "abcdefghijklmnopqrstuvwxyz" হয় এবং শব্দটি "হ্যালো" হয়, তাহলে আউটপুট হবে 20, যেমন a থেকে h, এটি হবে 7, তারপর h থেকে e 3, তারপর e থেকে l হল 7, তারপর l থেকে l হল 0, এবং l থেকে o হল 3, তাই মোট হল 7 + 3 + 7 + 3 =20

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

  • d, এবং z :=0 নামে একটি মানচিত্র তৈরি করুন
  • কিবোর্ড ফরম্যাট স্ট্রিং k
      এর দৈর্ঘ্য 0 থেকে সীমার মধ্যে
    • d[k[i]] :=i
  • উত্তর :=0
  • প্রতিটি অক্ষরের জন্য i শব্দে −
    • উত্তর :=উত্তর + |d[i] – z|
    • z :=d[i]
  • উত্তর ফেরত দিন

উদাহরণ(পাইথন)

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

class Solution(object):
   def calculateTime(self, k, w):
      d = {}
      z = 0
      for i in range(len(k)):
         d[k[i]]=i
      ans= 0
      for i in w:
         ans += abs(d[i]-z)
         z = d[i]
      return ans
ob1 = Solution()
print(ob1.calculateTime("abcdefghijklmnopqrstuvwxyz", "hello"))

ইনপুট

"abcdefghijklmnopqrstuvwxyz"
"hello"

আউটপুট

20

  1. কিভাবে আমি পাইথনে কীবোর্ড থেকে অনুলিপি করা পাঠ্য পেস্ট করব?

  2. পাইথনে নিকটতম পরবর্তী যোগফল খুঁজে বের করার জন্য প্রোগ্রাম

  3. পাইথনে পরপর বাইনারি সংখ্যার সংমিশ্রণ খুঁজে বের করার প্রোগ্রাম

  4. Python 3-এ Tkinter-এর সাথে কীবোর্ড শর্টকাট