# Convert the string into palindrome string by changing only one character

• Difficulty Level : Easy
• Last Updated : 09 Apr, 2021

Given a string str. Check if it is possible to convert the string into palindrome string by changing only one character.
Examples:

```Input : str = "abccaa"
Output : Yes
We can change the second last character
i.e. 'a' to 'b' to make it palindrome string

Input : str = "abbcca"
Output : No
We can not convert the string into palindrome
string by changing only one character.```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Approach : The idea is simple, we check character str[i] with str[n-i-1]. If there is a mismatch, we increment count. If count of mismatches exceed 1, we return false. Else we return true.
Below is the implementation of above idea :

## C++

 `// CPP program to Check if it is``// possible to convert the string``// into palindrome string by changing``// only one character.``#include``using` `namespace` `std;` `// Function to check if it is possible``// to convert the string into palindrome``bool` `checkPalindrome(string str){``    ` `    ``int` `n = str.length();       ``  ` `    ``// Counting number of characters``    ``// that should be changed.``    ``int` `count = 0;``    ``for` `(``int` `i = 0; i < n/2; ++i)``        ``if` `(str[i] != str[n - i - 1])``            ``++count;``    ` `    ``// If count of changes is less than``    ``// or equal to 1``    ``return` `(count <= 1);``}` `// Driver function.``int` `main()``{``    ``string str = ``"abccaa"``;   ``    ``if` `(checkPalindrome(str))``       ``cout << ``"Yes"` `<< endl;``    ``else``       ``cout << ``"No"` `<< endl;``    ` `    ``return` `0;``}`

## Java

 `// Java program to Check if it is``// possible to convert the string``// into palindrome string by changing``// only one character.``import` `java.io.*;` `class` `GFG {``    ` `    ``// Function to check if it is possible``    ``// to convert the string into palindrome``    ``static` `boolean` `checkPalindrome(String str){``    ` `    ``int` `n = str.length();    ` `    ``// Counting number of characters``    ``// that should be changed.``    ``int` `count = ``0``;``    ` `    ``for` `(``int` `i = ``0``; i < n/``2``; ++i)``    ` `        ``if` `(str.charAt(i) != str.charAt(n - i - ``1``))``            ``++count;``    ` `    ``// If count of changes is less than``    ``// or equal to 1``    ``return` `(count <= ``1``);``    ``}``    ` `// Driver Function   ``public` `static` `void` `main(String[] args) {``    ` `    ``String str = ``"abccaa"``;``        ` `    ``if` `(checkPalindrome(str))``    ` `        ``System.out.println(``"Yes"``);``    ``else``        ``System.out.println(``"No"``);``        ` `    ``}``    ` `}` `// This code is contributed by vt_m`

## Python3

 `# Python program to Check``# if it is possible to``# convert the string into``# palindrome string by``# changing only one character.` `# Function to check if``# it is possible to``# convert the string``# into palindrome``def` `checkPalindrome(``str``) :``    ` `    ``n ``=` `len``(``str``)``    ` `    ``# Counting number of``    ``# characters that``    ``# should be changed.``    ``count ``=` `0``    ``for` `i ``in` `range``(``0``, ``int``(n ``/` `2``)) :``        ``if` `(``str``[i] !``=` `str``[n ``-` `i ``-` `1``]) :``            ``count ``=` `count ``+` `1``    ` `    ``# If count of changes``    ``# is less than``    ``# or equal to 1``    ``if``(count <``=` `1``) :``        ``return` `True``    ``else` `:``        ``return` `False` `# Driver Code``str` `=` `"abccaa"``if` `(checkPalindrome(``str``)) :``    ``print` `(``"Yes"``)``else` `:``    ``print` `(``"No"``)``    ` `# This code is contributed by``# Manish Shaw(manishshaw1)`

## C#

 `// C# program to Check if it is``// possible to convert the string``// into palindrome string by changing``// only one character.``using` `System;` `class` `GFG {``    ` `    ``// Function to check if it is possible``    ``// to convert the string into palindrome``    ``static` `bool` `checkPalindrome(``string` `str){``    ` `        ``int` `n = str.Length;` `        ``// Counting number of characters``        ``// that should be changed.``        ``int` `count = 0;``        ` `        ``for` `(``int` `i = 0; i < n / 2; ++i)``        ` `            ``if` `(str[i] != str[n - i - 1])``                ``++count;``        ` `        ``// If count of changes is less than``        ``// or equal to 1``        ``return` `(count <= 1);``    ``}``    ` `    ``// Driver Function``    ``public` `static` `void` `Main()``    ``{     ``        ``string` `str = ``"abccaa"``;``            ` `        ``if` `(checkPalindrome(str))``        ` `            ``Console.WriteLine(``"Yes"``);``        ``else``            ``Console.WriteLine(``"No"``);``            ` `        ``}``    ` `}` `// This code is contributed by vt_m`

## PHP

 ``

## Javascript

 ``

Output:

`Yes`

My Personal Notes arrow_drop_up