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

পাইথনে শুধু অক্ষরগুলো রিভার্স করা

এই সমস্যায় একটি স্ট্রিং S দেওয়া থাকে। আমাদের কাজ হল এমন একটি স্ট্রিং তৈরি করা যেখানে অ-অক্ষর ক্যারেক্টারগুলো তাদের স্থানে থাকবে, কিন্তু সব অক্ষর (লেটার) রিভার্স অর্ডারে থাকবে। উদাহরণস্বরূপ, ইনপুট "a-bC-dEf-ghIj" হলে আউটপুট হবে "j-Ih-gfE-dCba"।

সমাধানের পদ্ধতি

  1. যদি S খালি হয়, তবে S রিটার্ন করুন।
  2. str_ = "", index1 = 0 এবং index2 = len(S) - 1 ইনিশিয়ালাইজ করুন।
  3. while index1 < len(S) লুপ চালান:
    • যদি index2 >= 0 এবং S[index1] ও S[index2] উভয়েই অক্ষর হয়, তবে str_ += S[index2], index2 এক কমান এবং index1 এক বাড়ান।
    • অন্যথায় যদি S[index1] অক্ষর হয়, তবে index2 এক কমান।
    • অন্যথায় যদি S[index1] অক্ষর না হয়, তবে str_ += S[index1] এবং index1 এক বাড়ান।
    • অন্যথায় index2 এক কমান এবং index1 এক বাড়ান।
  4. str_ রিটার্ন করুন।

উদাহরণ কোড

class Solution:
    def reverseOnlyLetters(self, S):
        if not S:
            return S
        str_ = ""
        index1 = 0
        index2 = len(S) - 1
        while index1 < len(S):
            if index2 >= 0 and S[index1].isalpha() and S[index2].isalpha():
                str_ += S[index2]
                index2 -= 1
                index1 += 1
            elif S[index1].isalpha():
                index2 -= 1
            elif not S[index1].isalpha():
                str_ += S[index1]
                index1 += 1
            else:
                index2 -= 1
                index1 += 1
        return str_

ob1 = Solution()
print(ob1.reverseOnlyLetters("a-bC-dEf-ghIj"))

ইনপুট

"a-bC-dEf-ghIj"

আউটপুট

"j-Ih-gfE-dCba"
  1. পাইথনে স্ট্রিং রিভার্স করা

  2. পাইথনে স্ট্রিং শুধু হোয়াইটস্পেস ক্যারেক্টার ধারণ করছে কিনা যাচাই করা

  3. পাইথনে স্ট্রিং শুধু বড় হাতের অক্ষর ধারণ করছে কিনা যাচাই করা

  4. পাইথনে স্ট্রিং শুধু ছোট হাতের অক্ষর ধারণ করছে কিনা যাচাই করা