Problem 44541. Arrange the names in alphabetical order (2)

Created by David Verrelli in Community

Arrange the list of names in alphabetical order, following the German standard DIN 5007, Variant 2, § — for lists of people's names.

Special characters:    ä = ae,    ö = oe,    ü = ue,    ß = ss.

The above special characters must be heeded in determining the correct sequence, and retained unaltered in the final output. Other accents would typically be ignored, but are in any case not present in the Test Suite. Hyphens and spaces do not affect the sequence.

Prefixes:    Ignore prefixes such as "von", "von der", "vor", "am", "zum". These can, in general, be identified in that they are not capitalised — see example below. Capitalisation (uppercase versus lowercase) must be preserved in your final output.

Sorting should be based on the surname [~family name]. The surname (together with any prefixes!) will always appear first, followed by a comma and then the given name(s) [first name(s)]. In principle, if two surnames were alike, then one would have to next sort by the given name(s) — however, that situation does not arise, and will not arise, in the Test Suite.

Inputs comprise cell arrays of character vectors. The cell arrays can be either row or column vectors. Return your output in the same type of vector.


 % Input
 in = {'Hofmann, Michael' 
       'Hölderlin, Friedrich' 
       'Holz, Arno'
       'van Hoddis, Jakob' 
       'von Hofmannsthal, Hugo'}
 % Output
 out = {'van Hoddis, Jakob' 
       'Hölderlin, Friedrich' 
       'Hofmann, Michael' 
       'von Hofmannsthal, Hugo' 
       'Holz, Arno'}

See also:

Solution Stats

25.0% Correct | 75.0% Incorrect
Last solution submitted on Feb 27, 2019

Problem Comments

Solution Comments