Inspirado en un reciente artículo de Daily WTF ...
Escriba un programa o función que tome un GUID (cadena en el formato XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, donde cada X representa un dígito hexadecimal), y genera el GUID incrementado en uno.
Ejemplos
>>> 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'
Notas
- A diferencia del artículo vinculado, el incremento de un GUID que termina en F debe "llevar" al dígito hexadecimal anterior. Ver ejemplos arriba.
- Puede suponer que la entrada no será
ffffffff-ffff-ffff-ffff-ffffffffffff. - Para dígitos hexadecimales superiores a 9, puede usar mayúsculas (AF) o minúsculas (af).
- Sí, los GUID pueden comenzar con a
0. - Su salida debe constar de exactamente 32 dígitos hexadecimales y 4 guiones en el formato esperado, incluidos los
0s iniciales necesarios . - No tiene que conservar el número de versión u otros bits fijos del GUID. Suponga que es solo un entero de 128 bits donde ninguno de los bits tiene un significado especial. Del mismo modo, se supone que los GUID se clasifican en un orden lexicográfico directo en lugar de en el orden binario de una
GUIDestructura de Windows . - Si escribir una función, la entrada puede ser de cualquier secuencia-de-
chartipo de datos:string,char[],List<char>, etc.
GUIDestructura de Windows .
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29fpara garantizar que las respuestas puedan hacer la transición 9 -> a.
foreach (char ch in theInput)sea válido el equivalente de C # de su idioma .