受到最近的每日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'
笔记
- 与链接的文章不同,递增以F结尾的GUID必须“携带”到前一个十六进制数字。请参阅上面的示例。
- 您可以假设输入将不是
ffffffff-ffff-ffff-ffff-ffffffffffff。 - 对于大于9的十六进制数字,可以使用大写(AF)或小写(af)。
- 是的,GUID可能以开头
0。 - 您的输出必须准确包含32个十六进制数字和4个连字符(以预期的格式),包括任何必需的前导
0s。 - 您不必保留GUID的版本号或其他固定位。假设它只是一个128位整数,其中没有位具有任何特殊含义。同样,假定GUID以直接的字典顺序排序,而不是以Windows
GUID结构的二进制顺序排序。 - 如果写的函数,则输入可以是任何序列OF-的
char数据类型:string,char[],List<char>,等。
GUID结构的二进制顺序排序。
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29f确保答案可以进行过渡9 -> a。
foreach (char ch in theInput)有效的任何数据类型。