プログラミングのお題スレ Part22 (858レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
714(4): デフォルトの名無しさん [] 2025/03/28(金) 22:12:15.09 ID:g08AymBh(1) AAS
お題
AさんがBさんに惚れてることを
A-B
と表します
両思いのペアを出力してください
入力
D-L,U-X,U-Y,U-R,Z-B,B-E,B-M,B-N,V-H,V-X,W-F,W-R,R-B,R-W,O-W,O-S,F-A,Q-X,P-E,P-L,X-X,Y-M,Y-C,L-U,L-V,I-X,E-B,H-M,A-S
出力
B,E
R,W
715: デフォルトの名無しさん [] 2025/03/28(金) 22:28:49.68 ID:VDfNaTNz(2/3) AAS
>>714
PowerShell
$s = "D-L,U-X,U-Y,U-R,Z-B,B-E,B-M,B-N,V-H,V-X,W-F,W-R,R-B,R-W,O-W,O-S,F-A,Q-X,P-E,P-L,X-X,Y-M,Y-C,L-U,L-V,I-X,E-B,H-M,A-S"
$h = @{}
$s -split "," |% {
$a, $b = $_ -split "-"
$h[$a] += , $b
}
foreach ($a in $h.keys) {
foreach ($b in $h[$a]) {
if ($a -lt $b -and $h[$b] -contains $a) {"$a,$b"}
}
}
-- 実行結果 --
B,E
R,W
716: デフォルトの名無しさん [] 2025/03/28(金) 23:19:47.32 ID:VDfNaTNz(3/3) AAS
>>714
PowerShellでもう少し短く
$s = "D-L,U-X,U-Y,U-R,Z-B,B-E,B-M,B-N,V-H,V-X,W-F,W-R,R-B,R-W,O-W,O-S,F-A,Q-X,P-E,P-L,X-X,Y-M,Y-C,L-U,L-V,I-X,E-B,H-M,A-S"
$h = @{}
$s -split "," |% {
$a, $b = $_ -split "-"
$i, $t = if ($a -lt $b) {1, "$a,$b"} else {2, "$b,$a"}
$h[$t] = $h[$t] -bor $i
}
$h.keys |? {$h[$_] -eq 3} | sort
-- 実行結果 --
B,E
R,W
717: デフォルトの名無しさん [sage] 2025/03/29(土) 11:51:50.06 ID:UeqVkFR5(1) AAS
>>714
Rust
use itertools::Itertools;
fn f(input: &str) -> impl Iterator<Item = &str> {
input.split(',')
.map(|pair| (pair, pair.splitn(2, '-').collect_tuple().unwrap()))
.filter(|(_, (a, b))| a < b)
.flat_map(|(pair, (a, b))| {
input.split(',')
.map(|pair| pair.splitn(2, '-').collect_tuple().unwrap())
.filter_map(move |(x, y)| (a == y && b == x).then_some(pair))
})
}
fn main() {
let input = "D-L,U-X,U-Y,U-R,Z-B,B-E,B-M,B-N,V-H,V-X,W-F,W-R,R-B,R-W,O-W,O-S,F-A,Q-X,P-E,P-L,X-X,Y-M,Y-C,L-U,L-V,I-X,E-B,H-M,A-S";
itertools::assert_equal(["B-E", "R-W"], f(input).sorted());
}
723: 警備員[Lv.4] [] 2025/03/31(月) 03:24:21.45 ID:V+SeThnI(1) AAS
>>714
Kotlin
//paiza.io/projects/WMZL8ULLNxc0zJQPI2uUsA
URLあると書けなかったので先頭のhttps:を抜いた。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s