Ispirato da un recente articolo del Daily WTF ...
Scrivi un programma o una funzione che accetta un GUID (stringa nel formato XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, in cui ogni X rappresenta una cifra esadecimale) e genera il GUID incrementato di uno.
Esempi
>>> 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'
Gli appunti
- Diversamente dall'articolo collegato, l'incremento di un GUID che termina con F deve "riportare" alla cifra esadecimale precedente. Vedi esempi sopra.
- Si può presumere che l'input non lo sarà
ffffffff-ffff-ffff-ffff-ffffffffffff. - Per cifre esadecimali superiori a 9, è possibile utilizzare maiuscole (AF) o minuscole (af).
- Sì, i GUID possono iniziare con a
0. - L'output deve essere composto esattamente da 32 cifre esadecimali e 4 trattini nel formato previsto, inclusi tutti gli iniziali necessari
0. - Non è necessario conservare il numero di versione o altri bit fissi del GUID. Supponiamo che sia solo un intero a 128 bit in cui nessuno dei bit ha un significato speciale. Allo stesso modo, si presume che i GUID ordinino in ordine lessicografico semplice anziché nell'ordine binario di una
GUIDstruttura di Windows . - Se crei una funzione, l'ingresso può essere di qualsiasi sequenza-di-
chartipo di dati:string,char[],List<char>, etc.
GUIDstruttura di Windows .
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29fassicurarsi che le risposte possano effettuare la transizione 9 -> a.
foreach (char ch in theInput)è valido l'equivalente della lingua di C # .