คำอธิบาย
สองสายสามารถสับโดยการกระจายตัวอักษรของพวกเขาเพื่อสร้างสายใหม่เช่นเดียวกับไพ่สองกองสามารถสับเพื่อสร้างกองเดียว
ยกตัวอย่างเช่นสตริงHELLOและWORLDสามารถสับในรูปแบบHWEOLRLLODหรือหรือบางทีอาจจะเพียงแค่HEWORLLLDOHELLOWORLD
มันเป็นไม่ได้สับเปลี่ยนถ้าคำสั่งเดิมของตัวอักษรไม่ได้เก็บรักษาไว้ ยกตัวอย่างเช่นDในWORLDไม่เคยปรากฏมาก่อนRหลังจากที่ถูกสับ ซึ่งหมายความว่าEHLLOWRDLOยกตัวอย่างเช่นไม่ใช่การสับเปลี่ยนHELLOและWORLDแม้ว่าจะมีตัวอักษรต้นฉบับทั้งหมด
สตริงคือการสลับของแฝดถ้ามันสามารถเกิดขึ้นได้โดยการสับสองสายเหมือนกัน ยกตัวอย่างเช่นABACBDECDEเป็นสับเปลี่ยนของฝาแฝดเพราะมันสามารถเกิดขึ้นโดยการสับและABCDE ไม่ใช่การสับเปลี่ยนของฝาแฝดเนื่องจากไม่สามารถขึ้นรูปได้โดยการสลับสองสายเหมือนกันABCDEDBEACBCADE
รายละเอียดโปรแกรม
รับสตริงอินพุตเอาต์พุต0ถ้าไม่ใช่การสลับแบบแฝดและส่งเอาต์พุตหนึ่งในสตริงแฝดหากเป็นสับเปลี่ยนของฝาแฝด
คุณอาจคิดว่าสายป้อนมีความยาวรวมระหว่างสี่ถึงยี่สิบอักขระและประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด มันควรจะสามารถทำงานในเวลาที่เหมาะสมพูดภายใต้ 10 นาที
นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดชนะ
ตัวอย่าง I / O
> ABACBDECDE
ABCDE
> DBEACBCADE
0
> FFFFFF
FFF
> FFGGG
0
> ABBA
0
> AABB
AB
> AABAAB
AAB
ผมมีตัวอย่าง (ที่ไม่แข็งแรงเล่นกอล์ฟ) การดำเนินงาน
FFGGGเพื่อให้สอดคล้องกัน
that the input string has a length inclusively between four and twenty charactersและอย่าบอกฉันว่า "อย่าไว้ใจอินพุตของผู้ใช้!", "อย่าเชื่อใจ specs!"