Inspiré d' un récent article du Daily WTF ...
Écrivez un programme ou une fonction qui prend un GUID (chaîne au format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, où chaque X représente un chiffre hexadécimal) et génère le GUID incrémenté de un.
Exemples
>>> increment_guid('7f128bd4-b0ba-4597-8f35-3a2f2756dfbb')
'7f128bd4-b0ba-4597-8f35-3a2f2756dfbc'
>>> increment_guid('06b86883-f3e7-4f9d-87c5-a047e89a19fa')
'06b86883-f3e7-4f9d-87c5-a047e89a19fb'
>>> increment_guid('89f25f2f-2f7b-4aa6-b9d7-46a98e3cb2cf')
'89f25f2f-2f7b-4aa6-b9d7-46a98e3cb2d0'
>>> increment_guid('89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29f')
'89f25f2f-2f7b-4aa6-b9d7-46a98e3cb2a0'
>>> increment_guid('8e0f9835-4086-406b-b7a4-532da46963ff')
'8e0f9835-4086-406b-b7a4-532da4696400'
>>> increment_guid('7f128bd4-b0ba-4597-ffff-ffffffffffff')
'7f128bd4-b0ba-4598-0000-000000000000'
Remarques
- Contrairement à l'article lié, l'incrémentation d'un GUID qui se termine par F doit «porter» au chiffre hexadécimal précédent. Voir les exemples ci-dessus.
- Vous pouvez supposer que l'entrée ne le sera pas
ffffffff-ffff-ffff-ffff-ffffffffffff. - Pour les chiffres hexadécimaux supérieurs à 9, vous pouvez utiliser des majuscules (AF) ou des minuscules (af).
- Oui, les GUID peuvent commencer par a
0. - Votre sortie doit être composée exactement de 32 chiffres hexadécimaux et de 4 traits d'union dans le format attendu, y compris les éventuels interlignes
0. - Vous n'avez pas à conserver le numéro de version ou d'autres bits fixes du GUID. Supposons que ce soit juste un entier de 128 bits où aucun des bits n'a de signification particulière. De même, les GUID sont supposés trier dans un ordre lexicographique simple plutôt que dans l'ordre binaire d'une
GUIDstructure Windows . - Si vous écrivez une fonction, l'entrée peut être d'une séquence-of-
chartype de données:string,char[],List<char>, etc.
GUIDstructure Windows .
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29fpour s'assurer que les réponses peuvent faire la transition 9 -> a.
foreach (char ch in theInput)est valide.