কম্পিউটার

পাইথনে সিজার সাইফার


ধরুন আমাদের একটি ছোট হাতের বর্ণমালার স্ট্রিং s আছে, এবং একটি অফসেট নম্বর বলে k। আমাদের s-এর প্রতিটি অক্ষরকে k অক্ষর দিয়ে প্রতিস্থাপন করতে হবে বর্ণমালা বরাবর আরও। আমাদের মনে রাখতে হবে যে অক্ষরটি যখন a বা z এর পরে ওভারফ্লো হয়, তখন এটি অন্য দিকে মোড়ানো হয়।

সুতরাং, ইনপুট যদি "হ্যালো", k =3 এর মত হয়, তাহলে আউটপুট হবে "khoor"

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

  • একটি ফাংশন শিফট() সংজ্ঞায়িত করুন। এটি c

    লাগবে
  • i :=(c) এর ASCII - ('a') এর ASCII

  • i :=i + k

  • i :=i mod 26

  • ASCII ('a') + i)

    এর ASCII থেকে অক্ষর ফেরত দিন
  • মূল পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -

  • ret :=s-এ প্রতিটি অক্ষর c-এর জন্য, shift(c) কল করে উপাদানগুলির একটি তালিকা তৈরি করুন

  • রিটার্ন রিটার্ন

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

উদাহরণ

class Solution:
   def solve(self, s, k):
      def shift(c):
         i = ord(c) - ord('a')
         i += k
         i %= 26
         return chr(ord('a') + i)

      return "".join(map(shift, s))

ob = Solution()
print(ob.solve("hello", 3))

ইনপুট

"hello", 3

আউটপুট

khoor

  1. issuperset() পাইথনে

  2. পাইথনে আন্ডারস্কোর(_)

  3. পাইথনে কুইন

  4. কীভাবে আপনার নিজের সিজার সাইফার এনকোডার লিখবেন