プログラミングのお題スレ Part22 (863レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
127(4): デフォルトの名無しさん [sage] 2023/10/14(土)00:00 ID:sMwx6jpS(1)
お題:角カッコの列が入力されるのでカッコの対応が取れていたら1,取れていなかったら0と表示せよ
< [[]]
> 1
< [[]
> 0
128: 17 [] 2023/10/14(土)02:22 ID:BgrcFKKf(1/2)
>>127
Perl
bash 等のシェルのコマンドラインで以下のように入力すると標準入力から入力して結果を標準出力に出力する。
perl -ne '$n=0;while(/(.)/g){if($1eq"["){$n++}elsif($1eq"]"){$n--}}$f=$n==0?1:0;print"$f\n"'
実行例
[[]]
1
[[]
0
[[[[]][[]]]
0
[[[[]][[]]]]
1
130: デフォルトの名無しさん [sage] 2023/10/14(土)10:19 ID:BRbCCPQd(1)
>>127 Ruby
%W( [[]] [[] [[[[]][[]]] [[[[]][[]]]] ][ #{} ).each{|s|
w = s.dup
{} while w.sub!( /\[\]/, '' )
puts "#{(s != '' && w == '')? 1 : 0} #{s.inspect}"
}
# 1 "[[]]"
# 0 "[[]"
# 0 "[[[[]][[]]]"
# 1 "[[[[]][[]]]]"
# 0 "]["
# 0 ""
131: デフォルトの名無しさん [] 2023/10/14(土)22:38 ID:5dUK8HoW(1)
>>127
C#
https://paiza.io/projects/biEUVjCtGCYB8s0ny8vsAQ
146: デフォルトの名無しさん [sage] 2023/10/28(土)20:54 ID:U0JINWpQ(1)
>>101 octave
https://ideone.com/87WGBO
function s = f(s, i)
s(circshift(i, -1, 2)) = s(i);
end
>>127 ocaml
https://ideone.com/IY1dWU
let chars s =
let rec aux acc i =
if i < 0 then acc else aux (s.[i] :: acc) (i - 1)
in aux [] ((String.length s) - 1)
let f s =
let rec aux = function
([], []) -> 1
| (_, []) -> 0
| ('['::bs, ']'::cs) -> aux (bs, cs)
| (bs, c::cs) -> aux (c::bs, cs)
in aux ([], (chars s))
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s