Given a palindromic string str and an integer N. The task is to find if it is possible to remove exactly N characters from the given string such that the string remains a palindrome.
Examples:
Input: str = “abba”, N = 1
Output: Yes
Remove ‘b’ and the remaining string
“aba” is still a palindrome.Input: str = “aba”, N = 1
Output: Yes
Approach: It can be observed that it is always possible to remove any number of characters less than or equal to its length from a palindromic string such that the resultant string remains a palindromic string.
Below is the implementation of the above approach:
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std;
// Function that returns true if str // remains a palindrome after removing // exactly N characters from it bool isPossible(string str, int n)
{ // Find the length of the string
int len = str.length();
// If it is possible
if (len >= n)
return true ;
return false ;
} // Driver code int main()
{ string str = "abccba" ;
int n = 4;
if (isPossible(str, n))
cout << "Yes" ;
else
cout << "No" ;
return 0;
} |
// Java implementation of the approach class GFG
{ // Function that returns true if str
// remains a palindrome after removing
// exactly N characters from it
static boolean isPossible(String str, int n)
{
// Find the length of the string
int len = str.length();
// If it is possible
if (len >= n)
return true ;
return false ;
}
// Driver code
public static void main (String[] args)
{
String str = "abccba" ;
int n = 4 ;
if (isPossible(str, n))
System.out.println( "Yes" );
else
System.out.println( "No" );
}
} // This code is contributed by AnkitRai01 |
# Python3 implementation of the approach # Function that returns true if str # remains a palindrome after removing # exactly N characters from it def isPossible( str , n):
# Find the length of the string
l = len ( str )
# If it is possible
if (l > = n):
return True
return False
# Driver code str = "abccba"
n = 4
if (isPossible( str , n)):
print ( "Yes" )
else :
print ( "No" )
|
// C# implementation of the approach using System;
class GFG
{ // Function that returns true if str
// remains a palindrome after removing
// exactly N characters from it
static bool isPossible(String str, int n)
{
// Find the length of the string
int len = str.Length;
// If it is possible
if (len >= n)
return true ;
return false ;
}
// Driver code
public static void Main(String[] args)
{
String str = "abccba" ;
int n = 4;
if (isPossible(str, n))
Console.WriteLine( "Yes" );
else
Console.WriteLine( "No" );
}
} // This code is contributed by PrinciRaj1992 |
<script> // Function that returns true if str // remains a palindrome after removing // exactly N characters from it function isPossible(str, n)
{ // Find the length of the string
var len = str.length;
// If it is possible
if (len >= n)
return true ;
return false ;
} var str = "abccba" ;
var n = 4;
if (isPossible(str, n))
document.write( "Yes" );
else
document.write( "No" );
</script> |
Yes
Time Complexity: O(1)
Auxiliary Space: O(1)