Open minds leads to freedom

Communicating my thoughts on software development

Archive for the 'palindrome' Category

K Palindromes puzzle

Posted by rnaufal on 3rd September 2013

Here we have the K Palindromes puzzle from Javalobby:

You probably already know what a palindrome is: a string to results in the same word, whether read left to right, or right to left. A K Palindrome is when a string can be tranformed into a palindrome by changing K characters at most. Regular palindromes have K=0.

Your challenge today is to write a method which takes a string and a value for k and returns true if it the string qualifies as a K palindrome.

Below is the code in Ruby. Our input string is omississimo and it’s a 0 palindrome String.

def isKPalindrome(s, k)
	chars = s.chars.to_a
	limit = chars.size - 1
	count = chars[0...chars.size / 2].each_index.count {|i| !chars[i].eql?(chars[limit - i])}
	k == count ? true : false

puts(isKPalindrome("omississimo", 0)) #true

The output is true. Do you have another solution? Drop your comments here!

Tags: , , , , , , ,
Posted in code, languages, palindrome, programming, puzzle, ruby, string | No Comments »