Minimum number of operations to make string palindrome

Concepts Used


Difficulty Level


Problem Statement (Simplified):

Convert given string into a palindrome by decreasing or increasing characters by their ASCII value, in minimum number of operations. Each decrement or increment is considered as one opeartion. Print the number of operations performed.

See original problem statement here

Test Case



String 'abcd' can be converted into its palindrome if we convert : 

'a'->'d' or 'd'->'a'  which takes (ASCII(d) - ASCII(a)) steps i.e. 3 steps.

'b'->'c' or 'c'->'b' which takes (ASCII(b) - ASCII(c)) steps i.e. 1 step.

Hence the total number of steps is 4.

Solving Approach :

1) Palindrome: A palindrome is a string that contains same characters from both ends. For example, nitin can be read same from both ends. Element at ith index from the start and end side both are the same.

2) As we know palindromes contains same characters at ith index and (len -i)th index. So we iterate from 0 to middle of the string and compare all the characters if at some index characters are different, the string is not palindrome. If all the characters remain same, the string is palindrome.

3) If two characters are not same at ith index and (len -i)th index, we have to make them the same. We can make them same by adding the ASCII value of difference of both the character to the smaller character.

4) Finally we add the difference to our counter, the final value of the counter will be answer according to the fundamentals of data structures in c++.


  • Let’s assume given string is abcds and we check values from both ends one by one, and check their difference, we take positive difference value as our step.
  • In 1st iteration, we compare a from start and s from end, we can convert either a to s or s to a. Their ASCII value difference is 18, so our current step count is 18.
  • In 2nd iteration, we compare b from start and d from end, we can convert either b to d or d to b. Their ASCII value difference is 2, so our current step count is 20.
  • As last element left is middle element,which is also a palindrome in it’s own, so we’ll skip that. Hence We get our final count as 20.


[TABS_R id=931]

[forminator_quiz id=”936″]

Previous post Sum of first N primes with no odd prime digit
Next post Tina loves A

Leave a Reply

Your email address will not be published. Required fields are marked *