এই সমস্যায় একটি স্ট্রিং S দেওয়া থাকে। আমাদের কাজ হল এমন একটি স্ট্রিং তৈরি করা যেখানে অ-অক্ষর ক্যারেক্টারগুলো তাদের স্থানে থাকবে, কিন্তু সব অক্ষর (লেটার) রিভার্স অর্ডারে থাকবে। উদাহরণস্বরূপ, ইনপুট "a-bC-dEf-ghIj" হলে আউটপুট হবে "j-Ih-gfE-dCba"।
সমাধানের পদ্ধতি
- যদি
Sখালি হয়, তবেSরিটার্ন করুন। str_ = "",index1 = 0এবংindex2 = len(S) - 1ইনিশিয়ালাইজ করুন।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এক বাড়ান।
- যদি
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"