daco2020 2022. 11. 27. 22:29

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.

Examples:

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

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



Solution:

String longest(String a, String b) {
  List result = (a + b).split('').toSet().toList();
  result.sort();
  return result.join('');
}
String longest(String a, String b) {
  List<String> list = [...a.split(''), ...b.split('')].toSet().toList()..sort();
  return list.join();
}
longest(a, b) => (((a + b).split('').toSet().toList())..sort()).join();