サブストリング - 百科事典

正式な言語理論とコンピュータサイエンスにおいて、部分文字列(サブストリング)は文字列内の連続した文字の集合です。例えば、「the best of」は「It was the best of times」の部分文字列です。対照的に、「Itwastimes」は「It was the best of times」の部分序列ですが、部分文字列ではありません。

接頭辞と接尾辞は部分文字列の特別な場合です。文字列



S


{\displaystyle S}

の接頭辞は、


S


{\displaystyle S}

の先頭に現れる部分文字列です;同様に、文字列




S


{\displaystyle S}

の接尾辞は、


S


{\displaystyle S}

の終わりに現れる部分文字列です。

「apple」の部分文字列は以下の通りです:
"a", "ap", "app", "appl", "apple",
"p", "pp", "ppl", "pple",
"pl", "ple",
"l", "le"
"e", ""
(最後に空文字列があります)。

部分文字列
文字



u


{\displaystyle u}

が文字列



t


{\displaystyle t}

の部分文字列(または因子)である場合、文字列



p


{\displaystyle p}





s


{\displaystyle s}

が存在し、


t
=
p
u
s


{\displaystyle t=pus}

であることがあります。特に、空文字列はすべての文字列の部分文字列です。

例:文字列



u


{\displaystyle u=}

anaは、文字列



t


{\displaystyle t=}

bananaの異なるオフセットで部分文字列(および部分序列)に等しいです:

banana
|||||
ana||
|||
ana

最初の出現は



p


{\displaystyle p=}

bと



s


{\displaystyle s=}

naで得られ、一方、二番目の出現は



p


{\displaystyle p=}

banと



s


{\displaystyle s}

が空文字列で得られます。

文字列の部分文字列は、文字列の接尾辞の接頭辞であり、同様に接頭辞の接尾辞です;例えば、nanはnanaの接頭辞であり、さらにbananaの接尾辞です。文字列



u


{\displaystyle u}

が文字列



t


{\displaystyle t}

の部分文字列である場合、それは部分序列でもありますが、これはより一般的な概念です。特定のパターンが特定の文字列内でどのように出現するかは、文字検索アルゴリズムで見つけることができます。二つの以上の文字列の部分文字列に等しい最長の文字列を見つけることは、最長共通部分文字列問題と呼ばれます。

数学文献では、部分文字列はアメリカではsubwords(部分単語)と呼ばれ、ヨーロッパではfactors(因子)と呼ばれます。

接頭辞
文字



p


{\displaystyle p}

が文字列



t


{\displaystyle t}

の接頭辞である場合、文字列



s


{\displaystyle s}

が存在し、


t
=
p
s


{\displaystyle t=ps}

であることがあります。適切な接頭辞は文字列自身と異なりません;一部の資料では、適切な接頭辞は空でないことも制限されています。接頭辞は部分文字列の特別な場合と見なすことができます。

例:文字列banは、文字列bananaの接頭辞(および部分文字列および部分序列)です:

banana
|||
ban

接頭辞を示すためには、しばしば角集合記号を使用し、


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示します。


p


{\displaystyle p}




t


{\displaystyle t}

の接頭辞であることを示すために


p


{\displaystyle p}




t