プログラミングのお題スレ Part22 (857レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
544: 9 [sage] 2025/02/08(土) 00:22:55.52 ID:vma3KbbM >>510 Perl5、>>537 の修正版 https://ideone.com/klqLux 修正点 ・>>537では間違って一番長い範囲を検出していたが、一番短い範囲に修正した。(サンプルデータではそれらの解はたまたま一致) ・パターンが3文字であることに依存する定数「2(=3 -1 )」をハードコードしている箇所があったので、パターン文字数次第で処理するように修正 ・検出した候補文字列リストのうち一番短い物の検索のためにわざわざ候補リスト全体をsortするのをやめて reduceによって長さが一番短い文字列を検索するように修正 List::Utils は言語処理系にデフォルトで付属のコアモジュール、 List::MoreUtils はCPANのオプションノジュールだがideoneのperlにはインスコされていたので使っちゃいましたテヘペロ なお、候補文字列リストを作らず、ループの最内ifの中で一番短い文字列だけを記録していく様に記述すれば 大規模問題で若干効率が良くなるだろうけど、 まあいいや、もういいや。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/544
545: 9 [sage] 2025/02/08(土) 00:26:07.95 ID:vma3KbbM >>544 List::Utils → List::Util ね。スマソ http://mevius.5ch.net/test/read.cgi/tech/1691038333/545
547: 9 [sage] 2025/02/08(土) 17:50:15.20 ID:HpUe4TZQ >>510 Perl5、>>544 をもう一回だけ改良 https://ideone.com/YkuK1w 改良点: ・検出された範囲の候補を一通りリストに蓄えて、あとでその中から最短のものを探す方式を止めて、 範囲を検索するループ内のifでその時点までの最短な範囲の判定と記録を行うようにした。 ・CPANモジュールList::MoreUtilsのminmaxを使わない。 ・コアモジュールList::Utilはminだけ使う。reduceは使わない。 なんだかPerlのコードらしい感じが減って、ベタな感じのコードになってしまいました http://mevius.5ch.net/test/read.cgi/tech/1691038333/547
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.054s