แรงบันดาลใจจากบทความ 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 ยัติภังค์ในรูปแบบที่คาดหวังรวมทั้งนำใด ๆ ที่จำเป็น
0
s - คุณไม่จำเป็นต้องเก็บหมายเลขเวอร์ชันหรือบิตคงที่อื่น ๆ ของ GUID สมมติว่ามันเป็นเพียงจำนวนเต็ม 128 บิตที่ไม่มีบิตใดที่มีความหมายพิเศษ ในทำนองเดียวกัน guid ของจะถือว่าเรียงลำดับในการสั่งซื้อ lexicographical ตรงไปตรงมามากกว่าในการสั่งซื้อของฐานที่ใช้ Windows
GUID
struct - ถ้าเขียนฟังก์ชั่นการป้อนข้อมูลที่อาจจะมีลำดับ -of-ใด
char
ชนิดข้อมูล:string
,char[]
,List<char>
ฯลฯ
GUID
struct
89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29f
เพื่อให้แน่ใจว่าคำตอบสามารถทำการเปลี่ยนแปลง9 -> a
ได้
foreach (char ch in theInput)
ถูกต้อง