igorwojda/kotlin-coding-challenges

Permutation palindrome solution is wrong.

Opened this issue · 0 comments

This test will fail even though oooo is a valid palindrome and palindrome Permutation

    @Test
    fun `'oooo' a palindrome`() {
        isPermutationPalindrome("oooo") shouldBeEqualTo true
    }

solution should be

private fun isPermutationPalindrome(str: String): Boolean {
    val charCountMap = str.groupingBy { it }.eachCount()
    val oddCount = charCountMap.count { it.value % 2 != 0 }

    return if (str.length % 2 == 0) {
        oddCount == 0
    } else {
        oddCount == 1
    }
}