プログラミングのお題スレ Part22 (882レス)
上下前次1-新
454: 2025/01/01(水)15:04 ID:ZpviU2f/(3/7) AAS
>>416
Java
外部リンク:paiza.io
455: 2025/01/01(水)18:14 ID:X9RQ0R0S(1) AAS
>>449
勝手に名付けて水道管連結ゲーム
先後で縦か横で管を繋げた方の勝ち
ただしこの場合、黒が角においたら連結するだけだが今白が角におくと黒2つは除去される
▓
□▓
456: 2025/01/01(水)19:18 ID:ZpviU2f/(4/7) AAS
>>382
Java
外部リンク:paiza.io
457: 2025/01/01(水)19:35 ID:ZpviU2f/(5/7) AAS
>>381
Java
外部リンク:paiza.io
458: 2025/01/01(水)20:12 ID:ZpviU2f/(6/7) AAS
>>356
Java
外部リンク:paiza.io
459: 2025/01/01(水)20:32 ID:ZpviU2f/(7/7) AAS
>>349
Java
外部リンク:paiza.io
460: 警備員[Lv.16] 2025/01/02(木)03:06 ID:PSAM74+n(1/2) AAS
>>438
Kotlin
外部リンク:paiza.io
461(1): 警備員[Lv.16] 2025/01/02(木)03:15 ID:PSAM74+n(2/2) AAS
>>449
解いてくれって?何をしたらいいの?
全パターンやらせて勝つパターンを出せってこと?
462: 2025/01/02(木)10:05 ID:gED46q9T(1) AAS
>>461
最善手だったら先手の勝ちかどうか
463: 2025/01/02(木)16:25 ID:H7SLSd6p(1) AAS
2chスレ:tech
Java
外部リンク:paiza.io
464(9): 2025/01/03(金)13:22 ID:dEYOS8Dq(1/2) AAS
お題
AのあとにAと同じ数だけBが続く言語エビがあるとします
文字列が入力されたときそれがエビ言語であるか判定するプログラムを作成してください
→ true
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
省1
465: 2025/01/03(金)13:25 ID:dEYOS8Dq(2/2) AAS
>>464
文字化け訂正
誤:AのあとbノAと同じ数だけBが続く言語エビがあるとします
正:AのあとにAと同じ数だけBが続く言語エビがあるとします
466: 2025/01/03(金)15:30 ID:aGLRGnDr(1/3) AAS
>>464 lisp
外部リンク:ideone.com
467: 2025/01/03(金)15:34 ID:aGLRGnDr(2/3) AAS
>>464 python
外部リンク:ideone.com
468(2): 2025/01/03(金)17:52 ID:aGLRGnDr(3/3) AAS
>>464 lisp (chatgptに教えてもらった)
外部リンク:ideone.com
外部リンク:chatgpt.com
469: 2025/01/03(金)20:07 ID:yesC/P5F(1) AAS
>>464
fn is_ab_lang(input: &str) -> bool {
match input
.chars()
.fold(Some(0), |state, char| match (state, char) {
(Some(count), 'A') => Some(count + 1),
(Some(count), 'B') if count > 0 => Some(count - 1),
_ => None,
}) {
Some(0) => true,
省11
470: 2025/01/03(金)23:45 ID:AD9nWeeV(1) AAS
>>464 c
外部リンク:ideone.com
#include <stdio.h>
#include <string.h>
int isablang(const char *s) {
size_t a = strspn(s, "A"), b = strspn(s + a, "B");
return !*s || 0 < a && 0 < b && a == b && isablang(s + a + b);
}
void g(const char *s) {
printf("%s\t%s\n", isablang(s) ? "true" : "false", s);
省6
471: 2025/01/04(土)14:03 ID:uiECOsgP(1/2) AAS
>>468
ChatGPTロジックだとAABABBが受理されちゃう
472: 468 2025/01/04(土)15:43 ID:RKGS1C18(1) AAS
あら
ちょっとだけ修正すれば…って、無理か
473: 2025/01/04(土)16:26 ID:kbkaPDs8(1) AAS
>>464 c
外部リンク:ideone.com
・strspn使わない
・再帰しない
#include <stdio.h>
int isablang(const char *s) {
const char *t, *u;
for (; *s; s = u) {
if (*s != 'A') return 0; else for (t = s; *t == 'A'; t++);
if (*t != 'B') return 0; else for (u = t; *u == 'B'; u++);
省4
474(4): 2025/01/04(土)21:19 ID:uiECOsgP(2/2) AAS
お題
貨幣・銀行券を次の文字列で表すとします
(1)
(5)
(10)
(50)
(100)
(500)
[1000]
[5000]
省13
475: 2025/01/04(土)22:52 ID:frbzLXtQ(1) AAS
>>474 c
外部リンク:ideone.com
476: 2025/01/05(日)03:39 ID:/228f09V(1) AAS
>>449
誰もいないので自分でAIに司令してやってみた
が何かおかしい
外部リンク:ideone.com
477: 2025/01/05(日)21:35 ID:6Z+55hA8(1) AAS
>>474 ruby
外部リンク:ideone.com
478: 警備員[Lv.18] 2025/01/12(日)04:14 ID:zWON4EbF(1/2) AAS
>>464
Kotlin
外部リンク:paiza.io
479: 警備員[Lv.18] 2025/01/12(日)04:47 ID:zWON4EbF(2/2) AAS
>>474
Kotlin
外部リンク:paiza.io
480: 2025/01/12(日)17:40 ID:Mt0OVaIB(1) AAS
4*4タイルゲームをAIに命令させてやらせているが
それっぽいのを出力はするが正しい勝利判定ができていない
481: 2025/01/13(月)13:03 ID:mFwJihvQ(1) AAS
>>438 c
外部リンク:ideone.com
482: 2025/01/13(月)20:43 ID:zlmvetys(1) AAS
>>438 java
外部リンク:ideone.com
483(1): 9 2025/01/20(月)01:11 ID:zWVP8H/r(1) AAS
>>474 Perl5
$s = '(100)(10)(1)[10000](5)(500)[1000][5000][1000][1000](10)(100)(50)(100)[1000]';
$h{$_} .= $_ for $s =~ /\(\d+\)|\[\d+\]/g;
use List::Util 'sum';
$v{$h{$_}} = sum($h{$_} =~ /\d+/g) for keys %h;
print "$_\n" for sort{$v{$b} <=> $v{$a}} keys %v;
実行結果
~ $ perl 22_474_value.pl
[10000]
[5000]
省7
484: 9 2025/01/21(火)02:09 ID:Kvjf8jsk(1) AAS
>>483 Perl5
$_ = 'abc def ghi';
print join(' ' x 4, split) . "\n";
485(20): 2025/01/22(水)21:35 ID:JtEnwxKE(1) AAS
お題
文字列と長さを入力として受け取り
デカルト積のリストを出力してください
入力:ABC 1
出力:[A, B, C]
入力:ABC 2
出力:[AA, AB, AC, BA, BB, BC, CA, CB, CC]
入力:ABC 3
出力:[AAA, AAB, AAC, ABA, ABB, ABC, ACA, ACB, ACC, BAA, BAB, BAC, BBA, BBB, BBC, BCA, BCB, BCC, CAA, CAB, CAC, CBA, CBB, CBC, CCA, CCB, CCC]
486(1): 2025/01/22(水)22:43 ID:EHGf/TPZ(1/2) AAS
>>485
Rust
fn odai(文字列: &str, 長さ: usize) -> Vec<String> {
use itertools::Itertools;
(0..長さ)
.map(|_| 文字列.chars())
.multi_cartesian_product()
.map(String::from_iter)
.collect()
}
省5
487: 2025/01/22(水)23:18 ID:dYX3B7ea(1) AAS
>>485 ruby
外部リンク:ideone.com
f = ->(s, n) {:product.to_proc.(*[s.chars]*n).map(&:join)}
488: 2025/01/22(水)23:57 ID:EHGf/TPZ(2/2) AAS
>>485
Rust 今回は積ライブラリを使わない自力版
fn odai(文字列: &str, 長さ: usize) -> Vec<String> {
let chars = 文字列.chars().collect::<Vec<_>>();
let mut state = vec![0; 長さ];
let mut output = Vec::new();
'Loop: loop {
let s = state.iter().map(|i| chars[*i]).collect();
output.push(s);
for index in state.iter_mut().rev() {
省11
489: 2025/01/23(木)18:33 ID:hcg9tgUx(1) AAS
AA省
490: 2025/01/23(木)20:05 ID:naue5Hlh(1) AAS
>>485 ocaml
外部リンク:ideone.com
>>485 octave
外部リンク:ideone.com
491: 9 2025/01/24(金)01:44 ID:p08ruAfw(1) AAS
>>485 Perl5
for $n (1..3) {
@cp = @s = qw(A B C);
while(--$n) { @cp = map{ $p = $_; map{ "$p$_" } @s } @cp }
print "@cp\n";
}
※見易くするためインデントは全角スペースに置換してあります
実行結果
~ $ perl 22_485_CartesianProd.pl
A B C
省2
492(1): 9 2025/01/24(金)17:38 ID:cg1ZmS3G(1) AAS
>>464 Perl5
for (<DATA>) {
chomp;
print "$_ → ", (/^(A((AB)?|(?1))B)+$/g ? 'true' : 'false'), "\n";
}
__DATA__
A
B
AB
ABB
省18
493(1): 2025/01/24(金)20:04 ID:kDOvSp0D(1) AAS
>>485 dart
外部リンク:ideone.com
>>485 rust
外部リンク:ideone.com
494: 9 2025/01/25(土)02:52 ID:wVQIyzpy(1) AAS
>>492
/g の gは不要で / でおkだった…orz
495: 2025/01/25(土)03:04 ID:Z97MpHAu(1) AAS
どんまい
496: 2025/01/25(土)21:23 ID:KM9w0vp0(1) AAS
>>485 c
外部リンク:ideone.com
・バッファに取る版
>>485 c
外部リンク:ideone.com
・バッファに取らない版
・表示するだけ
497: 2025/01/26(日)14:07 ID:nBBaggrk(1) AAS
>>485
Java
外部リンク:paiza.io
498: 493 2025/01/26(日)15:22 ID:dl7YvN1C(1) AAS
>>485 dart
外部リンク:ideone.com
・若干の簡略化
>>485 rust
外部リンク:ideone.com
・若干の簡略化?
499: 2025/01/27(月)00:00 ID:/Jqezixy(1) AAS
>>485 java
外部リンク:ideone.com
500(11): 2025/01/27(月)09:16 ID:rqFJtGlJ(1) AAS
お題
入力された文字列から重複する文字を抽出してください
T →
CG →
ATA → A
CGGA → G
ATGAT → AT
GTTGCA → GT
CCCCGGG → CG
ACTGCGAG → ACG
省2
501(1): 9 2025/01/27(月)17:15 ID:cwZgX9Gy(1/3) AAS
Perl5
for (qw{T CG ATA CGGA ATGAT GTTGCA CCCCGGG ACTGCGAG ATCAGAATA TGCCATGACA}) {
%h = (); $h{$_}++ for split '';
print "$_ → ", (grep{1 < $h{$_}} keys %h), "\n";
}
※見易くするためインデントを全角スペースに置換してあります
実行結果
~ $ perl 22_500_dupe_char.pl
T →
CG →
省8
502: 9 2025/01/27(月)21:20 ID:cwZgX9Gy(2/3) AAS
>>501 Coilotに入力して処理内容を問うてみたらちゃんと返してきてワラタ
外部リンク:copilot.microsoft.com
503: 9 2025/01/27(月)21:22 ID:cwZgX9Gy(3/3) AAS
CopilotのURLをコピペしても他の人に内容を見せることはできなかったワ…orz
504: 2025/01/27(月)21:24 ID:LHxZVLOG(1) AAS
>>500 octave
外部リンク:ideone.com
function s = f(s)
[~, ia] = unique(s);
s(ia) = [];
if 1 < length(s)
[~, ia] = unique(s, 'first');
s = s(sort(ia));
end
end
省4
505: 2025/01/27(月)21:30 ID:l9HsQRRu(1) AAS
>>485 lisp
外部リンク:ideone.com
>>500 lisp
外部リンク:ideone.com
506(1): 2025/01/28(火)21:18 ID:oNqYbqge(1) AAS
>>500 dart
外部リンク:ideone.com
>>500 c
外部リンク:ideone.com
507: 2025/01/29(水)01:00 ID:4mvV5Tkg(1) AAS
>>500 c++
外部リンク:ideone.com
508: 2025/01/29(水)01:49 ID:PQfpjql4(1) AAS
>>500
REM 重複チェック.bat
ruby -x "%~f0"
exit
#~
#!ruby
while 1
print "> "
a=$stdin.gets.chomp.split("")
exit if a==[]
省2
509: 2025/01/29(水)21:56 ID:GDFS0NvX(1) AAS
>>500 java
外部リンク:ideone.com
510(21): 2025/01/30(木)21:27 ID:te1+SH0T(1) AAS
お題
ソース文字列と検索文字列が入力されます
検索文字列の文字をすべて含むソース文字列の部分文字列のうち
一番短い部分文字列を出力してください
DHBICEJAFG EIC → ICE
FDGJHCBIEA EIC → CBIE
FBHDCIJGEA EIC → CIJGE
JDIBGHCEAF EIC → IBGHCE
JBCIAGDHEF EIC → CIAGDHE
EJFBCAGIHD EIC → EJFBCAGI
省2
511: 506 2025/01/30(木)21:43 ID:ID2xuR+0(1) AAS
>>500 c
外部リンク:ideone.com
・unsigned int m[128] = {0};を使って集計
512: 2025/01/30(木)22:47 ID:3iB+73MI(1) AAS
高速文字列解析の世界に似た問題のアルゴリズム(ウェーブレット木)が沢山ありました
513: 2025/01/31(金)00:36 ID:MBodgIXJ(1) AAS
>>510 ruby
外部リンク:ideone.com
514(2): 2025/01/31(金)13:46 ID:+tPQNmsr(1) AAS
このスレでいいのかわからんのだけど
Rust勉強中なんだがメモリ安全性の恩恵を受けやすいなんかしらかのプログラムを書こうと思ってるんだがなにかいいお題はあるか?
言語処理系は大体作ってるのでそれ以外で頼む
515: 2025/01/31(金)15:33 ID:b4vq2KMj(1) AAS
う~んこの嫌われムーブはあのおじさんか
このスレでは自重して欲しいな
516(2): 2025/01/31(金)16:14 ID:fZW/Grtl(1) AAS
>>514 へのお題
次の操作ができる循環リンクリストを作成してください
・空のリストへの挿入
・冒頭の挿入
・最後に挿入
・指定された位置への挿入
・最初のノードを削除する
・最後のノードを削除する
・任意の位置からノードを削除する
517(1): 2025/01/31(金)21:55 ID:mLWOFznj(1/2) AAS
>>514
Rustはメモリのデータ競合もデータ参照競合も全てコンパイルエラーにしてくれるから間違えようがないね
他の普通の言語だと実行して問題発生に気付いて調査して頑張ってようやく競合が原因だと判明して間違えていたことがわかるから開発効率の悪さとして差が現れるけど
Rustは実行前にその種のミスのデバッグまで全て終えてしまう感じ
518(1): 2025/01/31(金)22:10 ID:4ClqIqkw(1) AAS
普通は問題発生前に気がつく
519(1): 2025/01/31(金)22:17 ID:bHXxdIdo(1) AAS
>>510 c
外部リンク:ideone.com
520: 2025/01/31(金)22:38 ID:3jAIz2ps(1) AAS
>>518
グローバル変数を排他制御せずに使ってしまっていたりするミスなどよく見かけるような
一般的にも巨大なコードになったり複数人で共通認識なかったりで見逃しミスは必ず出てくる
そしてタイミング次第によって稀にバグが起こるパターンとか負荷が高くなって起きてバグ発覚とか
521: 2025/01/31(金)23:44 ID:mLWOFznj(2/2) AAS
全て自分で出来る気付くミスらない
って自己過信な人がセキュリティホールを招いてるからね
自動的にサポートしてくれる言語を使うのが安全で開発効率もいいよ
522: 2025/02/01(土)00:00 ID:pgp85i6o(1) AAS
ちゃんとルールを守って運転すれば
事故も起きないし、違反で捕まらない
それと同じ
523: 2025/02/01(土)00:26 ID:cvjWKAds(1) AAS
>>517
せっかくだからRustで>>516やってきなよ
524(1): 519 2025/02/01(土)17:22 ID:/Ur4AoNp(1) AAS
>>510 c
外部リンク:ideone.com
・若干の高速化
部分文字列を一文字ずつズラして検証していたのを
n = strcspnで探してn文字スキップへ
525: 2025/02/01(土)22:42 ID:1BfoGXYb(1) AAS
>>516
横からだがその仕様ならベクタをリングバッファとして使った両端キューで十分だな
多くの実用例でもこの方が速いことが知られている
use std::collections::VecDeque;
// 空のキュー
let mut deque: VecDeque<T> = VecDeque::new();
// 先頭に挿入
deque.push_front(t);
// 最後に挿入
deque.push_back(t);
省8
526: 2025/02/01(土)22:57 ID:FwGLv5NU(1/2) AAS
ズルしてどうするんよ…
527: 2025/02/01(土)23:00 ID:FwGLv5NU(2/2) AAS
Rustのメモリ安全性を確認するためにプログラム書きたいんでしょ、だったら循環リストをフルスクラッチするしかないよね
528: 2025/02/02(日)19:41 ID:NpAQnhYs(1) AAS
リンクリストならindex番目の操作(挿入or切除)は
index番目で分解して操作して合体するだけなのでこれで動くよ
use std::collections::LinkedList;
trait LinkedListExt<T> {
fn insert_at(&mut self, index: usize, value: T);
fn remove_at(&mut self, index: usize) -> Option<T>;
}
impl<T> LinkedListExt<T> for LinkedList<T> {
fn insert_at(&mut self, index: usize, value: T) {
let mut tail = self.split_off(index);
省10
529(1): 2025/02/03(月)21:15 ID:swo++26S(1) AAS
>>510
R
外部リンク:ideone.com
C++ (>>524と同じ巨大文字列での繰り返しあり)
外部リンク:ideone.com
530(1): 2025/02/03(月)22:57 ID:VF4m0iMh(1) AAS
>>510 c
外部リンク:ideone.com
・f_529 は529さんのパクり
・f_strcspn_chr は strchr してから strcspn すると単純ながら若干の速度向上
531(1): 530 2025/02/04(火)21:13 ID:k8XtEdoq(1) AAS
>>510 c
外部リンク:ideone.com
・f_529direct は出現位置集めるのやめた
*min = strchr(*min + 1, **min)) でそのまま次へ
532(1): 531 2025/02/05(水)20:39 ID:mFRiRIqM(1/2) AAS
>>510 c
外部リンク:ideone.com
・デバッグと若干の整理
533: 532 2025/02/05(水)23:28 ID:mFRiRIqM(2/2) AAS
>>510 java
外部リンク:ideone.com
534(1): 2025/02/06(木)22:16 ID:u6r6iDwj(1) AAS
>>510
C++
外部リンク:ideone.com
>>529からの変更点
・sへのtの文字の出現位置を高速取得(1バイト文字のみに対応)
・sにtの同一文字が3回以上連続して出現する場合に最初と最後以外の位置を省略
535: 2025/02/07(金)19:14 ID:UF6GKvr5(1) AAS
>>500
Wolfram Language
str = "ATGAT"
>> Out[1]= ATGAT
duplicates = str // Characters \
(* { A, T, G, A, T } *) \
// Counts \
(* <| A -> 2, T -> 2, G -> 1 |> *) \
// Select[Function[ 1 < # ]] \
(* <| A -> 2, T -> 2 |> *) \
省4
536: 2025/02/07(金)21:12 ID:n3kvQb3T(1) AAS
テス
537(3): 9 2025/02/07(金)21:20 ID:dMuAEB5V(1/4) AAS
>510 Perl5
外部リンク:ideone.com
538(2): 2025/02/07(金)22:53 ID:ovhX7KXo(1/2) AAS
>>510 c
外部リンク:ideone.com
・f_537 は537さんのパクリ
539: 9 2025/02/07(金)23:00 ID:dMuAEB5V(2/4) AAS
>>537
しくった、これ一番短い範囲ではなく間違って一番長い範囲を検出してる。
サンプルデータではたまたま同じ解になるようで、間違いを見落としてしまった。
それから、一番長い(短いにすべきだったが)範囲の検索にわざわざ候補listをsortして[0]番目を
取得しているが無駄だし規模が大きくなると効率よくない
時間あったら直しますわ〜
540(2): 9 2025/02/07(金)23:02 ID:dMuAEB5V(3/4) AAS
>>538
あーでも527の方式がいまんとこ一番早いんだな、検証thx
541: 9 2025/02/07(金)23:04 ID:dMuAEB5V(4/4) AAS
>>540 527 じゃなくて 537ね。スマソ
542: 538 2025/02/07(金)23:08 ID:ovhX7KXo(2/2) AAS
>>540
>>537さん方式は動的にメモリとらなくていいのがいいよね、清々しくていいよね
あと実行時間の値はまぁアテにはならんので参考程度にw
543: 2025/02/07(金)23:41 ID:qBbgMoXu(1) AAS
>>500
PowerShell
"T", "CG", "ATA", "CGGA", "ATGAT", "GTTGCA", "CCCCGGG", "ACTGCGAG ", "ATCAGAATA", "TGCCATGACA" |% {
"$_ → $(-join ([char[]]$_ | group -case |% {$_.name[$_.count -le 1]}))"
}
[実行結果]
T →
CG →
ATA → A
CGGA → G
省6
544(2): 9 2025/02/08(土)00:22 ID:vma3KbbM(1/2) AAS
>>510 Perl5、>>537 の修正版
外部リンク:ideone.com
修正点
・>>537では間違って一番長い範囲を検出していたが、一番短い範囲に修正した。(サンプルデータではそれらの解はたまたま一致)
・パターンが3文字であることに依存する定数「2(=3 -1 )」をハードコードしている箇所があったので、パターン文字数次第で処理するように修正
・検出した候補文字列リストのうち一番短い物の検索のためにわざわざ候補リスト全体をsortするのをやめて
reduceによって長さが一番短い文字列を検索するように修正
List::Utils は言語処理系にデフォルトで付属のコアモジュール、
List::MoreUtils はCPANのオプションノジュールだがideoneのperlにはインスコされていたので使っちゃいましたテヘペロ
なお、候補文字列リストを作らず、ループの最内ifの中で一番短い文字列だけを記録していく様に記述すれば
省2
545: 9 2025/02/08(土)00:26 ID:vma3KbbM(2/2) AAS
>>544 List::Utils → List::Util ね。スマソ
546: 2025/02/08(土)08:27 ID:7bAG/IVE(1) AAS
>>510
Wolfram Language
s = "DHBICEJAFG"
>> Out[1]= DHBICEJAFG
pattern = "EIC"
>> Out[2]= EIC
shortestMatch = \
(* 全通りの部分文字列を生成する *) \
ReplaceList[ Characters[ s ], {___, x__, ___} -> {x} ] \
(* 短い順、先頭に近い順に並べる *) \
省6
547: 9 2025/02/08(土)17:50 ID:HpUe4TZQ(1) AAS
>>510 Perl5、>>544 をもう一回だけ改良
外部リンク:ideone.com
改良点:
・検出された範囲の候補を一通りリストに蓄えて、あとでその中から最短のものを探す方式を止めて、
範囲を検索するループ内のifでその時点までの最短な範囲の判定と記録を行うようにした。
・CPANモジュールList::MoreUtilsのminmaxを使わない。
・コアモジュールList::Utilはminだけ使う。reduceは使わない。
なんだかPerlのコードらしい感じが減って、ベタな感じのコードになってしまいました
548(2): 2025/02/08(土)19:59 ID:EDI8nVtP(1/2) AAS
>>510
C++
外部リンク:ideone.com
>>534からの変更点
・minmax_elementを呼び出さずに済むようにして高速化
549(1): 2025/02/08(土)20:02 ID:EDI8nVtP(2/2) AAS
>>510
C++
外部リンク:ideone.com
>>548では検索文字列が短くて高速化されたか分かりにくかったので、長くして529, 534, 548の
実行時間を比較してみると、効果が顕著に現れた。
550: 警備員[Lv.19] 2025/02/09(日)03:18 ID:Y8d2noVo(1/2) AAS
>>485
Kotlin
外部リンク:paiza.io
551: 警備員[Lv.19] 2025/02/09(日)03:56 ID:Y8d2noVo(2/2) AAS
>>500
Kotlin
外部リンク:paiza.io
552: 2025/02/09(日)12:47 ID:uN83pfj6(1) AAS
>>510 c
外部リンク:ideone.com
・両端に着目し、両端のみを更新しつつ調べていく(が、これといってパっとせず)
・f_both_ends はあくまで元の文字列s上を調べていく
・f_both_ends_v2 は「次」「隣」にアクセスしやすくした構造の上を調べていく
・あと実行時間の値ははげしくブレブレなので参考程度にとどめておいてね
553: 2025/02/09(日)21:29 ID:do9MXosP(1/3) AAS
>>485
R
外部リンク:ideone.com
上下前次1-新書関写板覧索設栞歴
あと 329 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.942s*