একটি স্ট্রিং S দেওয়া আছে। S-র লেক্সিকোগ্রাফিক্যালি (lexicographically) সবচেয়ে বড় প্যালিনড্রোমিক সাবসিকোয়েন্স (palindromic subsequence) খুঁজে বের করতে হবে।
উদাহরণ
ইনপুট: "tutorialspointtutorial"
আউটপুট: "uu"
ব্যাখ্যা: স্ট্রিং-র সবচেয়ে বড় ক্যারেক্টার 'u'। এটি দুবার এসেছে। "uu" একটি প্যালিনড্রোম এবং লেক্সিকোগ্রাফিক্যালি সর্বোচ্চ।
সমাধানের পদ্ধতি
- স্ট্রিং-র সবচেয়ে বড় ক্যারেক্টার (max_val) বের করুন।
- স্ট্রিং-এ যaviaবার max_val এসেছে, সেগুলো সব একসাথে নিন।
- এই স্ট্রিংটি প্যালিনড্রোম হবে (কারণ সব ক্যারেক্টার একই) এবং লেক্সিকোগ্রাফিক্যালি সর্বোচ্চ।
পাইথন কোড
def largest_palindromic_substr(s):
ans = ""
max_val = s[0]
for i in range(1, len(s)):
max_val = max(max_val, s[i])
for i in range(len(s)):
if s[i] == max_val:
ans += s[i]
return ans
s = "tutorialspointtutorial"
print(largest_palindromic_substr(s))
ইনপুট
"tutorialspointtutorial"
আউটপুট
uu