SUPPORT UKRAINE
- Your indifference to the act of cruelty can thrive rogue nations like Russia -
を参考にしているブログ一覧
Python coding challenge - 変化球バイナリサーチアルゴリズム (binary search algorithm) を ループ処理 / 再帰処理 の2通りで実装してみよう!
Published 2022年7月14日8:10 by mootaro23
Python Coding Challenge (binary search)
(Python コーディングチャレンジ [変化球バイナリサーチ編])
今回は binary search アルゴリズムの実装です。ちょっとググれば色々とヒットしますので、面白くするために少しだけ変化球を用意しました。
問題:
昇順にソート済みの int 値を要素とする list が与えられます。
検索する …
【Python 雑談・雑学 + coding challenge】Unicode の正規化処理 ( normalization ) を利用して、diacritical marks ( 発音区別符号 ) を取り除こう! テキスト解析の前処理としても重要です!
Published 2020年9月24日21:35 by mootaro23
問題 ( 制限時間: 45 分 ):
私の元にこんな内容のファイルが送られてきました (ファイル名は 'greek_str.txt' とします)。
δοκῶ μοι περὶ ὧν πυνθάνεσθε οὐκ ἀμελέτητος εἶναι. καὶ γὰρ ἐτύγχανον
πρῴην εἰς ἄστυ οἴκοθεν ἀνιὼν Φαληρόθεν· τῶν οὖ…
【Python 雑談・雑学 + coding challenge】文字列中の数字を抜き出して桁区切りをつけよう! 正規表現 (regular expression ) を使うと「えっ!?」っていうくらい簡単ですょ。lookahead と negative lookahead を使います。
Published 2020年9月19日21:33 by mootaro23
問題 ( 制限時間: 40 分 ):
s = 'The numbers are 1234567890 and 98'
上のような文字列があった場合、この中の数字に桁区切りをつけましょう。
この場合の出力結果は以下のようになります。
# The numbers are 1,234,567,890 and 98
注意:
文字列から数字部分を抜き…
【Python 雑談・雑学 + coding challenge】itertools モジュールの combinations() メソッドを自分で実装してみよう!
Published 2020年9月1日17:01 by mootaro23
さて、itertools モジュールの combinations() メソッドを使ったことがありますか?
シーケンス要素の「組み合わせ」を返してくれます。
from itertools import combinations
nums = [0, 1, 2, 3]
print(list(combinations(nums, 2)))
# [(0, 1…
【Python 雑談・雑学 + coding challenge】sorted 組み込み関数の key パラメータをうまく使って、カスタムオブジェクトを簡単にソートしよう! __getitem__、__len__ 特殊関数 ( special methods, dunder methods ) を実装すれば立派なシーケンス ( sequence ) です
Published 2020年8月29日7:09 by mootaro23
唐突に coding challenge です!
問題: トランプをソート ( sort ) してください。 ( 制限時間: 25 分 )
ナナさんはトランプを 1 組持っています ( Deck クラスオブジェクト )。
妹にグチャグチャにシャッフルされてしまって途方に暮れています。
どうぞカードをソートしてあげてください。
カードの rank …
【Python 雑談・雑学 + coding challenge】Python の pprint 機能を自分で実装してみよう! 自分なりの Pretty Print できちゃいます!!
Published 2020年8月19日8:17 by mootaro23
Python では pprint モジュールが提供されていて、ネストしているデータ構造を階層的に出力してくれます。
from pprint import pprint
a = [1, 2, 3, 4, 5]
b = [1, [2, [5, 6], 3], 4]
pprint(a, indent=4, width=15)
# [1, 2, 3, 4, 5]
…
【Python 雑談・雑学 + coding challenge】iterator protocol の実装 --- __iter__ 特殊関数は何を返すべき? イテレータオブジェクト ( iterator object ) なら何でも、そう、generator expression でもOKです!
Published 2020年8月13日17:06 by mootaro23
さて、今回もちょっとしたコーディングチャレンジ ( coding challenge ) から。
問題 ( 制限時間: 25 分 ):
2 つの引数 (シーケンスと数値) を取るイテラブルクラス ( iterable class ) を定義します。
このクラスのオブジェクトは、「数値」の回数だけ「シーケンス」の要素を順番に返します。
もし「数値」が「シーケ…