Lấy cảm hứng từ một bài báo WTF hàng ngày gần đây ...
Viết chương trình hoặc hàm lấy GUID (chuỗi ở định dạng XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, trong đó mỗi X đại diện cho một chữ số thập lục phân) và xuất ra GUID tăng thêm một.
Ví dụ
>>> 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'
Ghi chú
- Không giống như trong bài viết được liên kết, việc tăng GUID kết thúc bằng F phải có thể mang theo chữ số hex trước đó. Xem ví dụ trên.
- Bạn có thể cho rằng đầu vào sẽ không được
ffffffff-ffff-ffff-ffff-ffffffffffff. - Đối với các chữ số hex trên 9, bạn có thể sử dụng trường hợp trên (AF) hoặc dưới (af).
- Có, GUID có thể bắt đầu bằng a
0. - Đầu ra của bạn phải bao gồm chính xác 32 chữ số hex và 4 dấu gạch nối ở định dạng mong đợi, bao gồm mọi
0s hàng đầu cần thiết . - Bạn không phải bảo toàn số phiên bản hoặc các bit cố định khác của GUID. Giả sử nó chỉ là một số nguyên 128 bit trong đó không có bit nào có ý nghĩa đặc biệt. Tương tự, GUID được giả định sắp xếp theo thứ tự từ điển đơn giản hơn là theo thứ tự nhị phân của
GUIDcấu trúc Windows . - Nếu viết một chức năng, đầu vào có thể của bất kỳ chuỗi-of-
charkiểu dữ liệu:string,char[],List<char>vv
GUIDcấu trúc Windows .
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29fđể đảm bảo rằng câu trả lời có thể thực hiện quá trình chuyển đổi 9 -> a.
foreach (char ch in theInput).