FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
次のプログラムを実行したときの戻り値はどれか。
文字列型: s ← "AABBBCA"
整数型: i, current ← 1, best ← 1
for (i を 2 から sの文字数 まで 1 ずつ増やす)
if (sのi文字目 = sの(i - 1)文字目)
current ← current + 1
else
if (current > best)
best ← current
endif
current ← 1
endif
endfor
if (current > best)
best ← current
endif
return best- ア 2
- イ 3
- ウ 4
- エ 5
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.x 科目B範囲
正解と解説
正解:3
正解:3
| 確認 | 値 |
|---|---|
| 連続区間 | AA, BBB, C, A |
| 最大長 | BBBの長さ3 |
| 最後のif | ループ後のcurrentもbestと比較する |
隣接文字が同じ間はcurrentを増やし、文字が変わったら直前の連続区間をbestに反映してcurrentを1へ戻す。文字の種類数ではなく、同じ文字が連続した最大長を返す。
アはAAだけを見た場合、ウ・エは文字数や別区間まで合算した場合に出やすい。最後の区間はelseに入らず終わることがあるので、ループ後のifも忘れず確認する。
この問題について
擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。