ให้บอกว่างานของคุณคือการทาสีเสาและลูกค้าขอให้คุณวาดเสาที่มี 4 ส่วนสีแดงและ 3 ส่วนสีเหลือง คุณสามารถทำได้โดยง่ายดังนี้
r y r y r y r
มีแถบสีเหลืองและสีแดง ตอนนี้ช่วยบอกลูกค้าของคุณขอให้คุณวาดเสามี 2 ส่วนสีแดง 2 ส่วนสีเหลืองและ1 ส่วนสีเขียว มีสองวิธีที่คุณสามารถทาสีเสาของคุณ
g y r y r
y g r y r
y r g y r
y r y g r
y r y r g
g r y r y
r g y r y
r y g r y
r y r g y
r y r y g
y r g r y
r y g y r
แม่นยำกว่านั่นคือ 12 วิธีในการทาสีเสา สิ่งนี้จะทำให้สีและส่วนต่าง ๆ ที่เกี่ยวข้องเพิ่มมากขึ้น
ทีนี้ถ้าลูกค้าของคุณบอกว่าพวกเขาต้องการส่วนสีแดง 3 ส่วนและส่วนสีเหลือง 1 ส่วนไม่มีวิธีการทาสีเสาแบบนั้น เพราะไม่ว่าคุณจะพยายามจัดเรียงส่วนสีแดงสองส่วนอย่างไรและเมื่อแตะสองส่วนสีแดงพวกเขาจะกลายเป็นส่วนสีแดงเดียว
และนั่นเป็นกฎข้อหนึ่งของเราในการทาสีเสา
ส่วนที่อยู่ติดกันอาจไม่เป็นสีเดียวกัน
งาน
รับรายการสีและส่วนที่ต้องการส่งออกจำนวนวิธีที่เป็นไปได้ในการทาสีเสาตามที่ร้องขอ คุณอาจเป็นตัวแทนของสีในลักษณะที่เหมาะสม (จำนวนเต็มตัวอักษรสตริง) แต่คุณจะไม่ได้รับมากกว่า 255 สีที่แตกต่างกันในแต่ละครั้ง หากคุณต้องการคุณสามารถเลือกที่จะไม่มีชื่อสีที่กำหนดและเพียงแค่ใช้รายการของส่วนที่มีการนับหากทำได้ง่ายขึ้น
กรณีทดสอบ
การคำนวณด้วยมือค่อนข้างยากโดยเฉพาะเมื่อมีขนาดใหญ่ หากใครมีกรณีทดสอบแนะนำฉันจะเพิ่ม
[4,3] -> 1
[2,2,1] -> 12
[3,1] -> 0
[8,3,2] -> 0
[2,2,1,1]-> 84
[1, 1, 1, 1, 2, 2, 2]
? ผมว่าอย่างนั้น.