We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
defhighestValuePalindrome(s,n,k):# Write your code here# Check minimum number of changes needed to make it a palindromemin_count=0min_change_index_list=[]foriinrange(n// 2):ifs[i]!=s[-1-i]:min_count+=1min_change_index_list.append(i)ifmin_count>k:return"-1"# Make it with the minimum number of changess=list(s)foriinmin_change_index_list:s[i]=s[-1-i]=max(s[i],s[-1-i])# Return immediately if min_count == kifmin_count==k:return"".join(s)# Make it with the maximum number of changes# Get index for making highest valuemax_change_index_list=[]max_count=k-min_countforiinrange(n// 2):ifmax_count==0:breakifs[i]!="9"ands[-1-i]!="9":ifiinmin_change_index_list:max_count-=1max_change_index_list.append(i)elifmax_count>=2:max_change_index_list.append(i)max_count-=2foriinmax_change_index_list:s[i]=s[-1-i]="9"ifn%2==1andmax_count>0:s[n// 2] = "9"return"".join(s)
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Highest Value Palindrome
You are viewing a single comment's thread. Return to all comments →
Python3