• logo

สตริงย่อย

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

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

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

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

สตริงย่อย

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

ตัวอย่าง: The string ยู = {\displaystyle u=} u=ana เท่ากับสตริงย่อย (และส่วนต่อท้าย) ของ) t = {\displaystyle t=} {\displaystyle t=}banana ที่ออฟเซ็ตที่แตกต่างกันสองแบบ:

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

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

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

คำนำหน้า

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

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

กล้วย|||ห้าม

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

คำต่อท้าย

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

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

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

ต้นไม้ต่อท้ายสตริงเป็นTrie โครงสร้างข้อมูลที่แสดงทั้งหมดของคำต่อท้ายของมัน ต้นไม้ต่อท้ายมีจำนวนมากของการใช้งานในขั้นตอนวิธีการสตริง อาร์เรย์ต่อท้ายเป็นรุ่นที่เรียบง่ายของโครงสร้างข้อมูลที่รายชื่อตำแหน่งเริ่มต้นของคำต่อท้ายในลำดับเรียงตามตัวอักษรนั้น มันมีแอพพลิเคชั่นเดียวกันมากมาย

ชายแดน

เส้นขอบคือคำต่อท้ายและคำนำหน้าของสตริงเดียวกัน เช่น "bab" คือเส้นขอบของ "babab" (และของ "babooneatingakebab" ด้วย)

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

superstringของเซต จำกัด พี {\displaystyle P} P ของ strings เป็นสตริงเดียวที่มีทุกสตริงใน พี {\displaystyle P} Pเป็นสตริงย่อย ตัวอย่างเช่น, bcclabccfab {\displaystyle {\text{bcclabccefab}}} {\text{bcclabccefab}} เป็นซุปเปอร์สตริงของ พี = { abcc , แฟบ , ccla } {\displaystyle P=\{{\text{abcc}},{\text{efab}},{\text{bccla}}\}} P=\{{\text{abcc}},{\text{efab}},{\text{bccla}}\}, และ efabccla {\displaystyle {\text{efabccla}}} {\text{efabccla}}เป็นอันที่สั้นกว่า โดยทั่วไป มีความสนใจในการหา superstrings ที่มีความยาวน้อยที่สุด [ ต้องการคำชี้แจง ]การต่อสายอักขระทั้งหมดของ พี {\displaystyle P} P ในลำดับใด ๆ ให้ superstring เล็กน้อยของ พี {\displaystyle P} P. สตริงที่มีการเปลี่ยนแปลงทุกเป็นไปได้ของชุดอักขระที่ระบุเรียกว่าsuperpermutation

ดูสิ่งนี้ด้วย

  • เครื่องหมายวงเล็บปีกกา
  • ดัชนีสตริงย่อย
  • คำต่อท้ายอัตโนมัติ

อ้างอิง

  1. ^ a b c Lotaire, M. (1997). Combinatorics กับคำ . เคมบริดจ์: สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์. ISBN 0-521-59924-5.
  2. ^ เคลลี่, ดีน (1995). ออโตและเป็นทางการภาษา: บทนำ ลอนดอน: Prentice-Hall International ISBN 0-13-497777-7.
  3. ^ กัสฟิลด์, แดน (1999) [1997]. อัลกอริทึมใน Strings, ต้นไม้และลำดับ: วิทยาศาสตร์คอมพิวเตอร์และชีววิทยาเชิงคอมพิวเตอร์ สหรัฐอเมริกา: สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์. ISBN 0-521-58519-8.

ลิงค์ภายนอก

  • สื่อที่เกี่ยวข้องกับSubstringที่ Wikimedia Commons
Language
  • Thai
  • Français
  • Deutsch
  • Arab
  • Português
  • Nederlands
  • Türkçe
  • Tiếng Việt
  • भारत
  • 日本語
  • 한국어
  • Hmoob
  • ខ្មែរ
  • Africa
  • Русский

©Copyright This page is based on the copyrighted Wikipedia article "/wiki/Substring" (Authors); it is used under the Creative Commons Attribution-ShareAlike 3.0 Unported License. You may redistribute it, verbatim or modified, providing that you comply with the terms of the CC-BY-SA. Cookie-policy To contact us: mail to admin@tvd.wiki

TOP