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

পাইথনে সিঙ্গেল-রো কিবোর্ড টাইমিং ক্যালকুলেশন

মনে করুন একটি বিশেষ কিবোর্ড আছে যেখানে সব কী একটি সিংগেল রোতে রয়েছে। যদি কিবোর্ড লেআউট নির্দেশ করে একটি ২৬ দৈর্ঘ্যের স্ট্রিং থাকে (সূচক ০ থেকে ২৫), আমাদের আঙ্গুল প্রাথমিকভাবে সূচক ০-এ থাকে। একটি ক্যারেক্টার টাইপ করতে হলে আঙ্গুলকে সেই ক্যারেক্টারের সূচকে নিয়ে যেতে হয়। সূচক i থেকে j-এ আঙ্গুল নিয়ে যেতে সময় লাগে |i - j|। যদি আমরা একটি স্ট্রিং টাইপ করতে চাই, তবে এক আঙ্গুল দিয়ে টাইপ করার জন্য কত সময় লাগবে তা বের করার ফাংশন লিখতে হবে। যেমন কিবোর্ড "abcdefghijklmnopqrstuvwxyz" এবং শব্দ "hello" হলে আউটপুট ২০, কারণ a থেকে h=7, h থেকে e=3, e থেকে l=7, l থেকে l=0, l থেকে o=3, মোট ৭+৩+৭+৩=২০।

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:

  • d নামক একটি ম্যাপ এবং z := 0 তৈরি করুন
  • for i in range 0 to length of keyboard string k
    • d[k[i]] := i
  • ans := 0
  • word-র প্রতিটি ক্যারেক্টার i জন্য
    • ans := ans + |d[i] - z|
    • z := d[i]
  • ans রিটার্ন করুন

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

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:

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. Python-এ কীবোর্ড থেকে কপি করা টেক্সট পেস্ট করার পদ্ধতি

  2. Python-এ নিকটতম সাবসিকোয়েন্স সমষ্টি বের করার প্রোগ্রাম

  3. পাইথনে ক্রমাগত বাইনারি সংখ্যা কনক্যাটেনেট করে ডেসিম্যাল ভ্যালু বের করার প্রোগ্রাম

  4. পাইথন ৩-এ Tkinter-এ কীবোর্ড শর্টকাট ব্যবহার