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

পাইথনে অ্যালফানিউমেরিক স্ট্রিংয়ের ডিজিটগুলোকে ক্যারেক্টারে রূপান্তর


একটি অ্যালফানিউমেরিক স্ট্রিং s দেওয়া আছে যেখানে জোড় ইনডেক্সে ছোট হাতের ইংরেজি অক্ষর এবং বিজোড় ইনডেক্সে ডিজিট রয়েছে। shift(c, x) অপারেশন হলো c অক্ষরের পর থেকে x-তম অক্ষর বের করা। যেমন shift('p', 5) = 'u', shift('a', 0) = 'a'। বিজোড় ইনডেক্স i-তে থাকা ডিজিট s[i]-কে shift(s[i-1], s[i]) দিয়ে রিপ্লেস করতে হবে। রিপ্লেস করার পর স্ট্রিংটি ফেরত দিন।

যেমন, s = "a2b1d4f3h2" হলে আউটপুট "acbcdhfihj"। কারণ: shift('a',2)='c', shift('b',1)='c', shift('d',4)='h', shift('f',3)='i', shift('h',2)='j'।

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

  • res := খালি স্ট্রিং
  • i = 0 থেকে s-এর দৈর্ঘ্য পর্যন্ত লুপ:
    • যদি s[i] ডিজিট হয়, তবে res := res + chr(int(s[i]) + ord(s[i-1]))
    • অন্যথায় res := res + s[i]
  • res ফেরত দিন।

উদাহরণ

def solve(s):
    res = ""
    for i in range(len(s)):
        if s[i].isdigit():
            res += chr(int(s[i]) + ord(s[i-1]))
        else:
            res += s[i]
    return res

s = "a2b1d4f3h2"
print(solve(s))

ইনপুট

"a2b1d4f3h2"

আউটপুট

acbcdhfihj

  1. পাইথন পান্ডাসে fillna(0) ব্যবহার করে ডেটাফ্রেমের সব NaN মান ০ দিয়ে প্রতিস্থাপন করা

  2. পাইথনে অ্যারেয়ের সব ডিজিট ব্যবহার করে ৩ দিয়ে বিভাজ্য সংখ্যা বানানো সম্ভব কিনা চেক করা

  3. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা

  4. পাইথনে স্ট্রিং-এর সকল~Occurrence রিপ্লেস করা