平成18年 秋期 基本情報技術者 午前 問10

長さの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
(ウ)になります。


キーワード
・部分文字列

キーワードの解説
  • 部分文字列
    部分文字列は文字列から一部を切り出したものです。
    部分文字列を求める処理は、各種検索機能で使われています。(検索エンジン、MS-Wordの検索など)

もっと、「部分文字列」について調べてみよう。

戻る 一覧へ 次へ