JupyterLab上でAtCoderのプログラムを書いています。
下記の問題を解いていた時にfor文内でexit()を使ったのですが、終了せずにそれ以降のループも実行されました。
しりとりの文字列が渡されるので、1つ目から順にfor文で見ていき、しりとりになっていない場合には"No"と出力して終了する...というのが意図した動作でした。
AtCoderにも下記のexit()を使ったコードが正答として認められたのですが、JupyterLab, Jupyter Notebook上では添付画像のように"No"が複数回表示されます。
これはJupyterの仕様なのでしょうか?
それとも、私のコードに汎用的な結果をもたらさない過ちがあるのでしょうか?
もし、そうでしたら教えていただければ嬉しいです。
追記
sys.exit()ではLab自体の終了につながるようで警告が出ました。
問題文
高橋くんは今日も1人でしりとりの練習をしています。
しりとりとは以下のルールで遊ばれるゲームです。
- はじめ、好きな単語を発言する
- 以降、次の条件を満たす単語を発言することを繰り返す
-- その単語はまだ発言していない単語である
--その単語の先頭の文字は直前に発言した単語の末尾の文字と一致する
高橋くんが発言した単語の個数Nとi番目に発言した単語Wiが与えられるので、どの発言もしりとりのルールを守っていたかを判定してください。
Python3
1# ABC109B - Shiritori 2n = int(input()) 3data = [input().rstrip() for _ in range(n)] 4used = [data[0]] 5 6for i in range(1, n): 7 if data[i][0] == data[i - 1][-1] and data[i] not in used: 8 used.append(data[i]) 9 else: 10 print("No") 11 exit() 12 13print("Yes")
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/23 21:14
2019/04/23 22:01 編集
退会済みユーザー
2019/04/23 23:52