**Problem Statement**

James found a love letter his friend Harry has written for his girlfriend. James is a prankster, so he decides to meddle with the letter. He changes all the words in the letter intopalindromes.

To do this, he follows 2 rules:

*(a)*He can reduce the value of a letter, e.g. he can change 'd' to 'c', but he cannot change 'c' to 'd'.

*(b)*In order to form a palindrome, if he has to repeatedly reduce the value of a letter, he can do it until the letter becomes 'a'. Once a letter has been changed to 'a', it can no longer be changed.

Each reduction in the value of any letter is counted as a single operation. Find the minimum number of operations required to convert a given string into a palindrome.

**Source Code:**

```
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int t;
cin>>t;
while(t--)
{
char inp[10000] ;
cin>>inp;
int first=0,last=strlen(inp)-1,ans = 0,count;
do{
int ff = inp[first];
int ll = inp[last];
if(ff!=ll)
{
int count = abs (ff-ll);
ans = ans +count;
}
first++;
last--;
}while(first<last);
cout<<ans<<endl;
}
return 0;
}
```

** The above solution is my own code and it may not be the optimal solution or optimal way to approach the problem but it passes all the testcases in Hackerrank. So if you have any optimal approaches feel free to paste the code as the comment below..... :) :) :)
Nice Algorithm!

ReplyDeleteThank you

Delete