อ่าน 2 นาที
คู่สูงสุด
ใน วิทยาการคอมพิวเตอร์ คู่สูงสุดภายในสตริง คือคู่ของสตริงย่อยที่ตรงกันซึ่งเป็นค่าสูงสุด โดยที่ "ค่าสูงสุด"...
คู่สูงสุด
ในวิทยาการคอมพิวเตอร์คู่สูงสุดภายในสตริง คือคู่ของสตริงย่อยที่ตรงกันซึ่งเป็นค่าสูงสุด โดยที่ "ค่าสูงสุด" หมายความว่าไม่สามารถสร้างคู่ที่ตรงกันที่ยาวขึ้นได้โดยการขยายช่วงของสตริงย่อยทั้งสองไปทางซ้ายหรือขวา
ตัวอย่าง
| ดัชนี | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| อักขระ | x | เอ | ข | ค | y | เอ | ข | ค | ว | เอ | ข | ค | y | z |
ตัวอย่างเช่น ในตารางนี้ สตริงย่อยที่ดัชนี 2 ถึง 4 (สีแดง) และดัชนี 6 ถึง 8 (สีน้ำเงิน) เป็นคู่สูงสุด เนื่องจากมีอักขระที่เหมือนกัน ( abc) และมีอักขระที่แตกต่างกันทางด้านซ้าย ( xที่ดัชนี 1 และyที่ดัชนี 5) และอักขระที่แตกต่างกันทางด้านขวา ( yที่ดัชนี 5 และwที่ดัชนี 9) ในทำนองเดียวกัน สตริงย่อยที่ดัชนี 6 ถึง 8 (สีน้ำเงิน) และดัชนี 10 ถึง 12 (สีเขียว) ก็เป็นคู่สูงสุดเช่นกัน
อย่างไรก็ตาม สตริงย่อยที่ดัชนี 2 ถึง 4 (สีแดง) และดัชนี 10 ถึง 12 (สีเขียว) ไม่ใช่คู่ที่ยาวที่สุด เนื่องจากมีอักขระyตามหลังสตริงย่อยทั้งสอง ดังนั้นจึงสามารถขยายไปทางขวาเพื่อให้ได้คู่ที่ยาวขึ้นได้
คำจำกัดความอย่างเป็นทางการ
ตามหลักการแล้ว คู่ของสตริงย่อยที่ใหญ่ที่สุดที่มีตำแหน่งเริ่มต้นเป็นและตามลำดับ และมีความยาวเท่ากันจะถูกกำหนดโดยสามสิ่งคือ โดยที่ เมื่อกำหนดสตริงที่มีความยาว( หมายความว่าสตริงย่อยมีเนื้อหาเหมือนกัน) แต่(มีอักขระทางด้านซ้ายที่แตกต่างกัน) และ(มีอักขระทางด้านขวาที่แตกต่างกันด้วย ซึ่งอสมการทั้งสองนี้เป็นเงื่อนไขสำหรับการเป็นคู่ที่ใหญ่ที่สุด) ดังนั้น ในตัวอย่างข้างต้น คู่ของสตริงย่อยที่ใหญ่ที่สุดคือ(สตริงย่อยสีแดงและสีน้ำเงิน) และ(สตริงย่อยสีเขียวและสีน้ำเงิน) และไม่ใช่คู่ที่ใหญ่ที่สุด
แนวคิดที่เกี่ยวข้องและความซับซ้อนของเวลา
การทำซ้ำสูงสุด (maximal repeat)คือสตริงที่แสดงโดยคู่สูงสุด (maximal pair) การทำซ้ำสูงสุดยิ่งกว่า (supermaximal repeat ) คือการทำซ้ำสูงสุดที่ไม่เคยปรากฏเป็นสตริงย่อยที่แท้จริงของการทำซ้ำสูงสุดอื่น ในตัวอย่างข้างต้นabcและabcyต่างก็เป็นการทำซ้ำสูงสุด แต่มีเพียง เท่านั้นabcyที่เป็นการทำซ้ำสูงสุดยิ่งกว่า
คู่สูงสุด การทำซ้ำสูงสุด และการ ทำซ้ำสูงสุดพิเศษ สามารถพบได้ในเวลาโดยใช้ต้นไม้คำต่อท้าย [ 1 ]หากมีโครงสร้างดังกล่าว
ลิงก์ภายนอก
- โปรเจกต์สำหรับการคำนวณหาจำนวนการซ้ำสูงสุดทั้งหมดในสตริงหนึ่งสตริงขึ้นไปในภาษา Pythonโดยใช้อาร์เรย์ส่วนท้าย (suffix array )
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ คู่สูงสุด
ใน วิทยาการคอมพิวเตอร์ คู่สูงสุดภายในสตริง คือคู่ของสตริงย่อยที่ตรงกันซึ่งเป็นค่าสูงสุด โดยที่ "ค่าสูงสุด"...
ตัวอย่าง
ตัวอย่างเช่น ในตารางนี้ สตริงย่อยที่ดัชนี 2 ถึง 4 (สีแดง) และดัชนี 6 ถึง 8 (สีน้ำเงิน) เป็นคู่สูงสุด เนื่องจากมีอักขระที่เหมือนกัน ( abc ) และมีอักขระที่แตกต่างกันทางด้านซ้าย ( x ที่ดัชนี 1 และ y ที่ดัชนี 5) และอักขระที่แตกต่างกันทางด้านขวา ( y ที่ดัชนี 5 และ...
คำจำกัดความอย่างเป็นทางการ
ตามหลักการแล้ว คู่ของสตริงย่อยที่ใหญ่ที่สุดที่มีตำแหน่งเริ่มต้นเป็นและตามลำดับ และมีความยาวเท่ากันจะถูกกำหนดโดย สามสิ่ง คือ โดยที่ เมื่อกำหนดสตริงที่มีความยาว( หมายความว่าสตริงย่อยมีเนื้อหาเหมือนกัน) แต่(มีอักขระทางด้านซ้ายที่แตกต่างกัน)...
แนวคิดที่เกี่ยวข้องและความซับซ้อนของเวลา
การ ทำซ้ำสูงสุด (maximal repeat) คือสตริงที่แสดงโดยคู่สูงสุด (maximal pair) การทำซ้ำสูงสุดยิ่งกว่า (supermaximal repeat ) คือการทำซ้ำสูงสุดที่ไม่เคยปรากฏเป็นสตริงย่อยที่แท้จริงของการทำซ้ำสูงสุดอื่น ในตัวอย่างข้างต้น abc และ abcy ต่างก็เป็นการทำซ้ำสูงสุด...