สมมติว่าเราใช้กฎต่อไปนี้เพื่อดึงสตริงเดียวจากสตริงอื่นหนึ่งประกอบด้วยอักขระที่พิมพ์ได้ ASCII เท่านั้นและเรียกว่า*
-string หากสตริงหมดก่อนกระบวนการหยุดทำงานนั่นคือข้อผิดพลาดและผลลัพธ์ของกระบวนการไม่ได้ถูกกำหนดในกรณีนั้น:
- เริ่มกับ
d=1, s=""
- เมื่อใดก็ตามที่คุณพบ
*
คูณd
โดย 2. เมื่อใดก็ตามที่คุณพบตัวละครอื่นเชื่อมไปยังจุดสิ้นสุดของและลบจากs
1d
หากตอนนี้d=0
หยุดและกลับมาs
ตัวอย่างที่กำหนด :
d->d
769->7
abcd56->a
*abcd56->ab
**abcd56->abcd
*7*690->769
***abcdefghij->abcdefgh
ตัวอย่างที่ไม่ได้กำหนด : (โปรดทราบว่าสตริงว่างจะเป็นหนึ่งในสิ่งเหล่านี้เช่นกัน)
*7
**769
*7*
*a*b
*
งานของคุณคือรับสตริงและคืนค่า*
-string ที่สั้นที่สุดที่สร้างสตริงนั้น
ตัวอย่างโปรแกรม :
7->7
a->a
ab->*ab
abcd->**abcd
769->*7*69
โปรแกรมของคุณควรจัดการกับสตริงใด ๆ ที่มีอักขระอย่างน้อยหนึ่งตัวและ*
อักขระที่พิมพ์ไม่ได้ASCII เท่านั้น คุณไม่สามารถส่งคืนสตริงที่กระบวนการไม่ได้กำหนดได้เนื่องจากตามนิยามแล้วพวกเขาไม่สามารถสร้างสตริงใด ๆ ได้
มีช่องโหว่มาตรฐานและกฎ I / O
*
หรือไม่