Wednesday, February 17, 2016

Merge Two Strings and Pick Distinct

Take 2 strings s1 and s2 including only letters from a to z. Return a new sorted string, the longest possible, containing distinct letters, - each taken only once - coming from s1 or s2.


a = "xyaabbbccccdefww"
b = "xxxxyyyyabklmopq"
longest(a, b) -> "abcdefklmopqwxy"

a = "abcdefghijklmnopqrstuvwxyz"
longest(a, a) -> "abcdefghijklmnopqrstuvwxyz" 


public class TwoToOne {
    public static String longest (String s1, String s2) {
        String s = s1 + s2;
        return s.chars()
                , StringBuilder::appendCodePoint
                , StringBuilder::append)