パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

影をつける問題を 内包表記、再帰関数、三項演算子、文字列マージ、スクロール などを使って解く

2021-06-13 | 速攻で言語マスターしてみませんか

アスキーアートに影を2つつける問題を解いてみます。

 

マージをテーマに作り始めました。

追加で、1つの機能を一行にまとめてみています。

(作成中)

 

内包表記、再帰関数、三項演算子 少し前はちょっと苦手でしたが、ガンガンつかっていると段々 抵抗感がなくなってきました。

<解説>

7行目 戻り fsとbs 2つを重ねて、fsがスペースならbsに入れ替え

9行目 戻り 文字列(s)のスペース以外をrsの文字に置き換え

11行目 戻り 文字列の後ろのスペースを削除 (再帰関数を3項演算子を使って、一行に)

18行目 2次元配列を文字列化させたものに、横2、縦2の影のスペース分 拡張

20行目 文字列を斜め下にスクロール(横幅+1のスペースを前に足して、元の文字列の長さ以降はカット)

 

テストケースのレアケース対応にもれがあって11行目 空行がくるとエラーになります。


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。