human
Find if string is K | Returns length of LCS for X [ 0. . m - 1 ] , Y [ 0. . n - 1 ].
Following steps build L [ m + 1 ] [ n + 1 ] in bottom up fashion . Note that L [ i ] [ j ] contains length of LCS of X [ 0. . i - 1 ] and Y [ 0. . j - 1 ].
L [ m ] [ n ] contains length of LCS for X and Y.
find if given string is K - Palindrome or not.
Find reverse of string.
find longest palindromic subsequence of given string.
If the difference between longest palindromic subsequence and the original string is less than equal to k , then the string is k - palindrome.
.
Driver program"
Solution in Python:
assistant
#Here is code to find if string is K and the other steps required.
 def lcs ( X , Y , m , n ) :
	L = [ [ 0 ] * ( n + 1 ) for _ in range ( m + 1 ) ]
	for i in range ( m + 1 ) :
		for j in range ( n + 1 ) :
			if not i or not j :
				L [ i ] [ j ] = 0
			elif X [ i - 1 ] == Y [ j - 1 ] :
				L [ i ] [ j ] = L [ i - 1 ] [ j - 1 ] + 1
			else :
				L [ i ] [ j ] = max ( L [ i - 1 ] [ j ] , L [ i ] [ j - 1 ] )
	return L [ m ] [ n ]
def isKPal ( string , k ) :
	n = len ( string )
	revStr = string [ : : - 1 ]
	lps = lcs ( string , revStr , n , n )
	return ( n - lps <= k )
/ * Swap values of left and right * /
string = " abcdeca "
k = 2
print ( " Yes " if isKPal ( string , k ) else " No " )