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

পাইথনে ডিলিমিটার রক্ষা করে শব্দ রিভার্স করা

একটি স্ট্রিং এবং ডিলিমিটার সেট দেওয়া আছে। স্ট্রিং-এর শব্দগুলো রিভার্স করতে হবে কিন্তু ডিলিমিটারদের আপেক্ষিক ক্রম অপরিবর্তিত রাখতে হবে।

উদাহরণ: s = "Computer/Network:Internet|tutorialspoint", delims = ["/", ":", "|"] হলে আউটপুট "tutorialspoint/Internet:Network|Computer"।

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

  • itertools.groupby ব্যবহার করে শব্দ এবং ডিলিমিটার আলাদা করুন
  • শব্দগুলো তালিকায় সংরক্ষণ করুন
  • দ্বিতীয় পাসে ডিলিমিটারগুলো যেন থাকুক এবং শব্দগুলো রিভার্স অর্ডারে যোগ করুন
  • ফলাফল স্ট্রিং ফেরত দিন

উদাহরণ কোড

from itertools import groupby
class Solution:
    def solve(self, sentence, delimiters):
        words = []
        ans = ""
        for k, g in groupby(sentence, lambda x: x in delimiters):
            if not k:
                words.append("".join(g))
        for k, g in groupby(sentence, lambda x: x in delimiters):
            if k:
                ans += "".join(g)
            else:
                ans += words.pop()
        return ans

ob = Solution()
s = "Computer/Network:Internet|tutorialspoint"
delims = ["/", ":", '|']
print(ob.solve(s, delims))

ইনপুট

"Computer/Network:Internet|tutorialspoint", ["/", ":", '|']

আউটপুট

tutorialspoint/Internet:Network|Computer
  1. পাইথনে ডায়रेक्टেড গ্রাফকে উল্টে ফেলার প্রোগ্রাম

  2. পাইথনে স্ট্রিং-এ জোড় দৈর্ঘ্যের শব্দ প্রিন্ট করা

  3. পাইথনে অ্যারের একটি পজিশন পর্যন্ত রিভার্স করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: অ্যারে নির্দিষ্ট পজিশন পর্যন্ত রিভার্স করা