মনে করুন s একটি স্ট্রিং। কমপক্ষে একবার সোয়্যাপ করলে লেক্সিকোগ্রাফিক্যালি সবচেয়ে ছোট স্ট্রিং কোনটি হবে সেটি খুঁজে বের করতে হবে।
উদাহরণস্বরূপ, "zyzx" হলে আউটপুট "xyzz"।
সমাধানের ধাপসমূহ
- temp := s আকারের অ্যারে, ০ দিয়ে পূরিত
- m := s-এর আকার - ১
- i = s-এর আকার-১ থেকে ০ পর্যন্ত,
- যদি s[i] < s[m], m := i
- temp[i] := m
- i = 0 থেকে s-এর আকার পর্যন্ত,
- a := temp[i]
- যদি s[a] != s[i], স্ট্রিং রিকনস্ট্রাক্ট করে ফেরত দিন
- s ফেরত দিন
উদাহরণ
class Solution:
def solve(self, s):
temp = [0]*len(s)
m=len(s)-1
for i in range(len(s)-1, -1, -1):
if s[i]ইনপুট
zyzx
আউটপুট
xyzz