HOME»基本情報技術者試験掲示板»平成27年秋期午後問8
投稿する

平成27年秋期午後問8 [4250]

 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さん(No.2) 
FE シルバーマイスター
>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日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop