Inspirowany najnowszym artykułem Daily WTF ...
Napisz program lub funkcję, która pobiera GUID (ciąg znaków w formacie XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
, w którym każdy X reprezentuje cyfrę szesnastkową), i wyświetla GUID z przyrostem o jeden.
Przykłady
>>> 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'
Uwagi
- W przeciwieństwie do artykułu z linkiem, zwiększenie identyfikatora GUID kończącego się na F musi „przenosić” do poprzedniej cyfry szesnastkowej. Zobacz przykłady powyżej.
- Możesz założyć, że dane wejściowe nie będą
ffffffff-ffff-ffff-ffff-ffffffffffff
. - W przypadku cyfr szesnastkowych powyżej 9 możesz użyć dużej (AF) lub małej (af) wielkości liter.
- Tak, identyfikatory GUID mogą zaczynać się od
0
. - Dane wyjściowe muszą składać się z dokładnie 32 cyfr szesnastkowych i 4 łączników w oczekiwanym formacie, w tym wszelkich niezbędnych początkowych znaków
0
. - Nie musisz zachowywać numeru wersji ani innych ustalonych bitów identyfikatora GUID. Załóżmy, że jest to tylko 128-bitowa liczba całkowita, w której żaden z bitów nie ma żadnego specjalnego znaczenia. Podobnie zakłada się, że identyfikatory GUID są sortowane w prostej kolejności leksykograficznej, a nie w kolejności binarnej
GUID
struktury systemu Windows . - Jeśli pisanie funkcji, wejście może być dowolnej sekwencji z eksploatacji
char
typu danych:string
,char[]
,List<char>
, itd.
GUID
struktury systemu Windows .
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29f
aby upewnić się, że odpowiedzi mogą dokonać przejścia 9 -> a
.
foreach (char ch in theInput)
.