กลับไปหน้าบทความ

อ่าน 3 นาที

ไม่มีชื่อบทความ

ใน ทฤษฎีภาษาเชิงรูปธรรม และ วิทยาศาสตร์คอมพิวเตอร์ สตริง ย่อย คือลำดับของ ตัวอักษร ที่ต่อเนื่องกัน ภายใน สตริงหลัก ตัวอย่างเช่น " the best of " เป็นสตริงย่อยของ " It was the best..

สตริงย่อย

" สตริง " เป็นสตริงย่อยของ " สตริงย่อย "

ในทฤษฎีภาษาเชิงรูปธรรมและวิทยาศาสตร์คอมพิวเตอร์สตริงย่อยคือลำดับของตัวอักษร ที่ต่อเนื่องกัน ภายในสตริงหลักตัวอย่างเช่น " the best of " เป็นสตริงย่อยของ " It was the best of times " ในทางตรงกันข้าม "It was the best of times " เป็นลำดับย่อยของ " It was the best of times " แต่ไม่ใช่สตริงย่อย

คำนำหน้าและคำต่อท้ายเป็นกรณีพิเศษของสตริงย่อย คำนำหน้าของสตริงเอส{\displaystyle S}เป็นสตริงย่อยของเอส{\displaystyle S}ซึ่งเกิดขึ้นในช่วงเริ่มต้นของเอส{\displaystyle S}ในทำนองเดียวกัน คำต่อท้ายของสตริงเอส{\displaystyle S}เป็นสตริงย่อยที่ปรากฏอยู่ตอนท้ายของเอส{\displaystyle S}.

สตริงย่อยของสตริง " apple " จะเป็นดังนี้: " a ", " ap ", " app ", " appl ", " apple ", " p ", " pp ", " ppl ", " pple ", " pl ", " ple ", " l ", " le ", " e ", "" (โปรดสังเกตว่ามีสตริงว่างอยู่ตอนท้าย)

สตริงย่อย

เชือกคุณ{\displaystyle u}เป็นสตริงย่อย (หรือแฟกเตอร์) [ 1 ]ของสตริงที{\displaystyle t}ถ้ามีสตริงอยู่สองสตริงพี{\displaystyle p}และ{\displaystyle s}โดยที่ที=พีคุณ{\displaystyle t=pus}โดยเฉพาะอย่างยิ่ง สตริงว่างเป็นสตริงย่อยของทุกสตริง

ตัวอย่าง: สตริงคุณ=อนา{\displaystyle u={\texttt {ana}}}เท่ากับสตริงย่อย (และลำดับย่อย) ของที=กล้วย{\displaystyle t={\texttt {banana}}}ที่ระยะห่างสองค่าที่แตกต่างกัน:

กล้วย |||| อนา|| || อนา

การเกิดขึ้นครั้งแรกได้รับด้วยพี={\displaystyle p={\texttt {b}}}และ=นา{\displaystyle s={\texttt {na}}}ในขณะที่การเกิดขึ้นครั้งที่สองนั้นได้มาด้วย พี=ห้าม{\displaystyle p={\texttt {ban}}}และ{\displaystyle s}เป็นสตริงว่างเปล่า

สตริงย่อยของสตริงหลัก คือส่วนนำหน้าของส่วนต่อท้ายของสตริงหลัก และในทำนองเดียวกันคือ ส่วนต่อท้ายของส่วนนำหน้า ตัวอย่างเช่นnanเป็นส่วนนำหน้าของnanaซึ่งเป็นส่วนต่อท้ายของbananaถ้าคุณ{\displaystyle u}เป็นสตริงย่อยของที{\displaystyle t}นอกจากนี้ยังเป็นลำดับย่อยซึ่งเป็นแนวคิดที่กว้างกว่า การค้นหาการปรากฏของรูปแบบที่กำหนดในสตริงที่กำหนดสามารถทำได้โดยใช้อัลกอริธึมการค้นหาสตริง การค้นหาสตริงที่ยาวที่สุดซึ่งเท่ากับสตริงย่อยของสตริงสองสตริงขึ้นไปเรียกว่าปัญหาสตริงย่อยร่วมที่ยาวที่สุดในวรรณกรรมทางคณิตศาสตร์ สตริงย่อยยังเรียกว่าคำย่อย (ในอเมริกา) หรือแฟกเตอร์ (ในยุโรป)

คำนำหน้า

เชือกพี{\displaystyle p}เป็นคำนำหน้า[ 1 ]ของสตริงที{\displaystyle t}ถ้ามีสตริงอยู่{\displaystyle s}โดยที่ที=พี{\displaystyle t=ps}คำนำหน้าที่เหมาะสมของสตริงไม่เท่ากับสตริงนั้นเอง[ 2 ]แหล่งข้อมูลบางแหล่ง[ 3 ]ยังจำกัดคำนำหน้าที่เหมาะสมไม่ให้ว่างเปล่าอีกด้วย คำนำหน้าสามารถมองได้ว่าเป็นกรณีพิเศษของสตริงย่อย

ตัวอย่าง: สตริงนี้banเท่ากับส่วนนำหน้า (และส่วนย่อยและส่วนลำดับย่อย) ของสตริงbanana:

กล้วย || ห้าม

สัญลักษณ์เซตย่อยรูปสี่เหลี่ยมบางครั้งใช้เพื่อระบุคำนำหน้า เพื่อให้พีที{\displaystyle p\sqsubseteq t}แสดงว่าพี{\displaystyle p}เป็นคำนำหน้าของที{\displaystyle t}นี่เป็นการกำหนดความสัมพันธ์แบบทวิภาคบนสตริง เรียกว่าความสัมพันธ์แบบพรีฟิก ซึ่งเป็น ลำดับพรีฟิกชนิดหนึ่งโดยเฉพาะ

คำต่อท้าย

เชือก{\displaystyle s}เป็นคำต่อท้าย[ 1 ]ของสตริงที{\displaystyle t}ถ้ามีสตริงอยู่พี{\displaystyle p}โดยที่ที=พี{\displaystyle t=ps}ส่วนต่อท้ายที่ถูกต้องของสตริงนั้นไม่เท่ากับตัวสตริงเอง การตีความที่แคบกว่านั้นคือ ส่วนต่อท้ายนั้นต้องไม่ว่างเปล่าด้วยคำต่อท้ายสามารถมองได้ว่าเป็นกรณีพิเศษของสตริงย่อย

ตัวอย่าง: สตริงนี้nanaเท่ากับส่วนต่อท้าย (และสตริงย่อยและลำดับย่อย) ของสตริงbanana:

กล้วย |||| นานา

โครงสร้างข้อมูล แบบ ไทร (trie)สำหรับสตริงเรียกว่าต้นไม้ส่วนต่อท้าย ( suffix tree ) ซึ่งแสดงส่วนต่อท้ายทั้งหมดของสตริงนั้น ต้นไม้ส่วนต่อท้ายมีแอปพลิเคชันมากมายในอัลกอริทึมเกี่ยวกับสตริง ส่วนอาร์เรย์ส่วนต่อท้าย ( suffix array)เป็นโครงสร้างข้อมูลที่เรียบง่ายกว่า โดยแสดงตำแหน่งเริ่มต้นของส่วนต่อท้ายตามลำดับตัวอักษร และมีแอปพลิเคชันที่คล้ายคลึงกันหลายอย่าง

ชายแดน

เส้นขอบคือส่วนต่อท้ายและส่วนนำหน้าของสตริงเดียวกัน เช่น "บับ{\displaystyle {\texttt {bab}}}" คือพรมแดนของ "บาบับ{\displaystyle {\texttt {babab}}}" (และรวมถึง "ลิงบาบูนการกินเอเคบับลิงบาบูนกำลังกินเคบับ").

ซูเปอร์สตริง

ซูเปอร์สตริงของเซตจำกัดพี{\displaystyle P}ของสตริงคือสตริงเดียวที่ประกอบด้วยสตริงทุกสตริงในพี{\displaystyle P}ในรูปของสตริงย่อย ตัวอย่างเช่นbcclabccefab{\displaystyle {\texttt {bcclabccefab}}}เป็นซูเปอร์สตริงของพี={เอบีซีซี,อีแฟบ,บีซีแอลเอ}{\displaystyle P=\{{\texttt {abcc}},{\texttt {efab}},{\texttt {bccla}}\}}, และอีแฟบคลา{\displaystyle {\texttt {efabccla}}}เป็นอันที่สั้นกว่า การรวมสมาชิกทั้งหมดของพี{\displaystyle P}โดยเรียงลำดับตามอำเภอใจ จะได้ซูเปอร์สตริงที่ไม่สำคัญเสมอพี{\displaystyle P}การค้นหาซูเปอร์สตริงที่มีความยาวน้อยที่สุดเท่าที่จะเป็นไปได้นั้นเป็นปัญหาที่น่าสนใจกว่า

สตริงที่ประกอบด้วยการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดของชุดอักขระที่กำหนด เรียกว่าซูเปอร์เพอร์มูเทชัน (Superpermutation )

ดูเพิ่มเติม

  1. 1 2 3 Lothaire, M. (1997). Combinatorics on words . Cambridge: Cambridge University Press. ISBN 0-521-59924-5.
  2. เคลลีย์, ดีน (1995). ออโตมาตาและภาษาเชิงรูปธรรม: บทนำ . ลอนดอน: เพรนติส-ฮอลล์ อินเตอร์เนชั่นแนล. ISBN 0-13-497777-7.
  3. Gusfield, Dan (1999) [1997]. Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology . สหรัฐอเมริกา: Cambridge University Press. ISBN 0-521-58519-8.

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

ใน ทฤษฎีภาษาเชิงรูปธรรม และ วิทยาศาสตร์คอมพิวเตอร์ สตริง ย่อย คือลำดับของ ตัวอักษร ที่ต่อเนื่องกัน ภายใน สตริงหลัก ตัวอย่างเช่น " the best of " เป็นสตริงย่อยของ " It was the best..

สตริงย่อย

เชือก คุณ {\displaystyle u} เป็นสตริงย่อย (หรือแฟกเตอร์) [ 1 ] ของสตริง ที {\displaystyle t} ถ้ามีสตริงอยู่สองสตริง พี {\displaystyle p} และ ส {\displaystyle s} โดยที่ ที = พี คุณ ส {\displaystyle t=pus} โดยเฉพาะอย่างยิ่ง สตริงว่างเป็นสตริงย่อยของทุกสตริง

คำนำหน้า

เชือก พี {\displaystyle p} เป็นคำนำหน้า [ 1 ] ของสตริง ที {\displaystyle t} ถ้ามีสตริงอยู่ ส {\displaystyle s} โดยที่ ที = พี ส {\displaystyle t=ps} คำนำ หน้าที่เหมาะสม ของสตริงไม่เท่ากับสตริงนั้นเอง [ 2 ] แหล่งข้อมูลบางแหล่ง [ 3 ]...

คำต่อท้าย

เชือก ส {\displaystyle s} เป็นคำต่อท้าย [ 1 ] ของสตริง ที {\displaystyle t} ถ้ามีสตริงอยู่ พี {\displaystyle p} โดยที่ ที = พี ส {\displaystyle t=ps} ส่วน ต่อท้ายที่ถูกต้อง ของสตริงนั้นไม่เท่ากับตัวสตริงเอง การตีความที่แคบกว่านั้นคือ...