H27春期午後のプログラミング

T.S.さん  
(No.1)
空欄イでは、「rStringの長さ」、ウでは、「EncodeArray[k]がrStringに等しい」と解答し、
正解はrStringがInputStringとなってましたが、rStringだとエラーになるのでしょうか?
2019.03.21 22:30
T.S.さん  
(No.2)
この投稿は投稿者により削除されました。(2019.03.21 22:50)
2019.03.21 22:50
T.S.さん  
(No.3)
あともう1点あります。
空欄カは「nがLineに等しくない」でもOKでしょうか?
2019.03.21 22:50
助け人さん 
AP ゴールドマイスター
(No.4)
空欄イ…「rStringの長さ」は「InputStringの長さ」と等しいので、OKです。

空欄ウ…この時点の「rString」は巡回シフトが1周していて「InputString」とたまたま等しいので、OKです。でも、仕様によると「InputString」です。

ただ、上の二つは、採点時に正解としてくれるか、いささか不安です(IPAが別解として載せていないので)。

空欄カ…「nがLineに等しくない」だと、表1の手順3で、6文字目のa(4)がOutputStringの末尾に追加されないので、NGです。
2019.03.23 16:28
T.S.さん  
(No.5)
空欄カについてですが、
問題文の例から、BlockSortString="yppaaa"、Line=4とすると、
最初にOutputStringが追加されるのはDecodeArray[1][Line]
つまりDecodeArray[1]の4番目の要素になる"p"になります。
また、nはDecodeArray[2][Line]=2と代入されます。
while文に入る時、n、DecodeArray[1][n]、DecodeArray[2][n]の値の更新は
以下のようになります。

n  DecodeArray{1][n]  DecodeArray[2][n]
4      "p"                  2
2      "a"                  5
5      "p"                  3
3      "a"                  6
6      "y"                  1
1      "a"                  4

nが1の時、OutputStringに"a"が追加された後に、nはDecodeArray[2][n]=4に更新されます。
この時のOutputStringは"papaya"となっています。
さらに、nが4で、Lineと等しくなったため、関数として成立していると思われますが、
違った部分はどこになるのでしょうか?
2019.03.23 21:42
助け人さん 
AP ゴールドマイスター
(No.6)
申し訳ありません。勘違いがありました。T.S.さんのおっしゃる通りです。空欄カは「nがLineに等しくない」でOKです。

T.S.さんは、これまでの他の投稿を見て、別解が得意なようですが、IPAの解答例のように解けて、なおかつ、別解も考えているのですか?それとも、最初から別解が出てくるのですか?
2019.03.23 22:08
助け人さん 
AP ゴールドマイスター
(No.7)
余談ですが、図4において、空欄エと空欄オを含む2行は、
n ← Line
の1行に置き換えれば、スッキリします。

ただし、この場合は、空欄カは「nがLineに等しくない」ではダメで、IPAの解答例のとおりになりますね。
2019.03.23 22:24
T.S.さん  
(No.8)
ご返信ありがとうございます。
私は別解を考えてないのですが、解答時に、違った書き方をすることが多いです。
2019.03.23 23:44

返信投稿用フォーム

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

その他のスレッド


Pagetop