最近のDaily WTFの記事に触発されて ...
GUID(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
各Xが16進数を表すformatの文字列)を受け取り、1ずつ増加した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をインクリメントすると、前の16進数に「移動」する必要があります。上記の例を参照してください。
- 入力がにならないことを前提とするかもしれません
ffffffff-ffff-ffff-ffff-ffffffffffff
。 - 9を超える16進数の場合、大文字(AF)または小文字(af)を使用できます。
- はい、GUIDはで始まる場合があり
0
ます。 - 出力は、必要な先行s を含めて、正確に 32桁の16進数と期待される形式の4つのハイフンで構成する必要があります
0
。 - GUIDのバージョン番号またはその他の固定ビットを保持する必要はありません。ビットが特別な意味を持たない単なる128ビット整数であると仮定します。同様に、GUIDは、Windows
GUID
構造体のバイナリ順ではなく、簡単な辞書順でソートされると想定されます。 - 関数を書く場合、入力は、任意の配列オブのものとすることができる
char
データの種類:string
、char[]
、List<char>
、等
GUID
構造体のバイナリ順ではなく、簡単な辞書順でソートされると想定されます。
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29f
回答が移行できることを確認します9 -> a
。
foreach (char ch in theInput)
が有効な任意のデータ型を使用できます。