長さの3文字列 C1C2C3 の中には、長さ2以上の連続した部分文字列としてC1C2、C2C3及びC1C2C3の三つがある。
長さ100の文字列C1C2…C100の中に、長さ10以上の連続した部分が全部で幾つあるかを求める式はどれか。
ア | 1+2+3+…+88+89 |
イ | 1+2+3+…+89+90 |
ウ | 1+2+3+…+90+91 |
エ | 1+2+3+…+98+99 |
答え ウ
【解説】
書く長さの文字列が幾つあるかを考えます。
文字列C1C2…C100の中に長さが100の文字列は“C1…C100”の1個です。
文字列C1C2…C100の中に長さが99の文字列は“C1…C99”と“C2…C100”の2個です。
文字列C1C2…C100の中に長さが98の文字列は“C1…C98”と“C2…C99”と“C3…C100”の3個です。
…
ここまでで、ある程度規則性が見えたと思います。
取り出す文字列の長さの個数=元の文字列の長さ取り出す文字列の長さ+1
になります。
…
文字列C1C2…C100の中に長さが11の文字列は100-11+1=90個です。
文字列C1C2…C100の中に長さが10の文字列は100-10+1=91個です。
したがって、長さ10以上の連続した部分の個数は
1+2+3+…+90+91
(ウ)になります。
【キーワード】
・部分文字列