平成27年秋期午後問8

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
forestさん  
(No.1)
https://www.fe-siken.com/kakomon/27_aki/pm08.html


設問1 b
skip配列の中身ですが普通に skip[3, 2, 1, 0, 4, 4,.....]みたいな感じになりませんか?

skip[index(pat[i])] ← Patlen - i は skip[1(A)] に 3 を代入する処理になると思うのですが。

解説の Patlen - 3 ってどこの処理のことを言っていて、どのようにskipの中身が pat 内の文字の位置と対応しているのでしょうか。
2022.05.13 01:58
nsさん 
FE シルバーマイスター
(No.2)
>skip[index(pat[i])] ← Patlen - i は skip[1(A)] に 3 を代入する処理になると思うのですが。
ループの1周目(i=1)ではその通りです。
i=1 ~ i=PatLen-1のループ(この例では3周)をトレースすれば、説明の通り、[1, 4, 2, 4, ...]となります。

・1周目  i=1
Pat[i]="A"
Index(Pat[i])=1
したがって、Skip[1]に3を代入します
Skip=[3, 4, 4, 4, ...]

・2周目  i=2
Pat[i]="C"
Index(Pat[i])=3
したがって、Skip[3]に2を代入します
Skip=[3, 4, 2, 4, ...]

・3周目  i=3
Pat[i]="A"
Index(Pat[i])=1
したがって、Skip[1]に1を代入します
Skip=[1, 4, 2, 4, ...]

・4周目  i=4
i > PatLen - 1となるため、ループを終えます
この時、Skip=[1, 4, 2, 4, ...]になっています。
2022.05.13 08:56
forestさん  
(No.3)
なるほど、、、ありがとうございます。
確かにループの一週目で判断していたのでそこが誤りでした
2022.05.14 13:46

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop