Palindrome #1

Det kanske är dags att kolla på Java 8 grejer.

Uppgiften är från hackerrank att beräkna antal ändringar som behövs för att göra ett ord till ett palindrom.

Löst med IntStream

import java.util.stream.IntStream;

int palindromeChanges =
    IntStream.range(0, word.length()/2)
        .map(idx -> Math.abs(
            (char)word.charAt(idx) -
            (char)word.charAt(word.length()-idx-1)
        ))
        .sum();

 

Och vanlig for-loop

int sum = 0;
for(int idx = 0; idx < word.length()/2; idx++) {
    sum += Math.abs(
        (char)word.charAt(idx) -
        (char)word.charAt(word.length()-idx-1)
    );
}

 

Jag vet inte riktigt om jag tycker det är så stor skillnad än så länge… men, hade iaf tillfälle att titta på andra stream() funktioner, som reduce och filter.

Nu är det sovdags!

Leave a Reply

Your email address will not be published. Required fields are marked *