Натхненний нещодавньою статтею Daily WTF ...
Напишіть програму або функцію, яка приймає GUID (рядок у форматі XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, де кожен X являє собою шістнадцяткову цифру) та виводить GUID, збільшений на одиницю.
Приклади
>>> 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'
Примітки
- На відміну від пов'язаної статті, приріст GUID, який закінчується на F, повинен "переносити" на попередню шістнадцяткову цифру. Дивіться приклади вище.
- Ви можете припустити, що введення не буде
ffffffff-ffff-ffff-ffff-ffffffffffff. - Для шістнадцяткових цифр вище 9 ви можете використовувати верхній (AF) або нижній (af) регістр.
- Так, GUID можуть починатися з
0. - Вихід повинен містити рівно 32 шістнадцяткових цифр та 4 дефісів у очікуваному форматі, включаючи будь-які необхідні провідні
0s. - Вам не потрібно зберігати номер версії чи інші фіксовані біти GUID. Припустимо, це просто 128-бітове ціле число, де жоден з бітів не має особливого значення. Аналогічно, GUID передбачається сортувати в прямому лексикографічному порядку, а не у бінарному порядку
GUIDструктури Windows . - Якщо написання функції, вхід може бути будь-якою послідовністю-of
charтипу даних:string,char[],List<char>і т.д.
GUIDструктури Windows .
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29fщоб відповіді могли зробити перехід 9 -> a.
foreach (char ch in theInput).