[過去ログ] プログラミングのお題スレ Part13 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
571
(16): 2019/03/09(土)19:49 ID:R3sqYFdd(1)調 AAS
お題:文字列と数値nが与えられるのでn番目の文字とそれ以外の文字を上下にスライドさせて表示する

入力
abc 2

出力
*b*
a*c
579
(1): 2019/03/10(日)03:08 ID:LqrBe0vy(1)調 AAS
>>571 ruby
s = "abc"
n = 2
t = "*" * s.length
t[n - 1] = s[n - 1]
u = s.clone
u[n - 1] = "*"
puts(t, u)
580: 2019/03/10(日)11:57 ID:e6SI07pl(1)調 AAS
>>571 J
f =: 4 : 0
|: ((,. -.) (<:x) = i. # y ) {"1 '*' ,. y
)

2 f 'abc'
*b*
a*c
581
(1): 2019/03/10(日)13:31 ID:vqbsu7fW(1/2)調 AAS
>>571

Haskell

main = do
putStrLn $ seclet "abc" (==) 2
putStrLn $ seclet "abc" (/=) 2

seclet lst func num = seclet' lst func 1 num
where
seclet' [] _ _ _ = []
seclet' (x:xs) f n a | f n a = x: seclet' xs f (n + 1) a
seclet' (_:xs) f n a = '*': seclet' xs f (n + 1) a
582: 2019/03/10(日)13:56 ID:vqbsu7fW(2/2)調 AAS
>>571
>>581

引数の順序入れ替えてmapM_ 使って、main部分を一行にまとめた。

main = mapM_ (putStrLn.seclet "abc" 2) [(==),(/=)]

seclet lst num func = seclet' lst 1 num func
where
seclet' [] _ _ _ = []
seclet' (x:xs) n a f | f n a = x: seclet' xs (n + 1) a f
seclet' (_:xs) n a f = '*': seclet' xs (n + 1) a f
583: 2019/03/10(日)17:19 ID:lsf+n+kn(1/2)調 AAS
>>571 Perl5

($s, $n)= qw{abc 2};
@s = split'',$s;
@t = qw{*} x @s;
$n--;
($s[$n], $t[$n]) = ($t[$n], $s[$n]);
print @t, "\n", @s, "\n";

実行結果
~ $ perl 13_571.pl
*b*
a*c
585: 2019/03/10(日)20:48 ID:z5UigTCL(1/2)調 AAS
>>571 octave
https://ideone.com/fEaJMh
588
(1): 2019/03/10(日)21:20 ID:z5UigTCL(2/2)調 AAS
>>571 ruby
https://ideone.com/6NM2Z2

>>567
String#lines ←これの存在知らなかった
勉強になりました
590: 2019/03/10(日)21:59 ID:5renFNS0(1)調 AAS
>>571
@Mathematica

https://ideone.com/gDkzl4
592: 2019/03/10(日)22:14 ID:SJp/1k7U(1)調 AAS
>>571 Common Lisp
https://ideone.com/cnTKML
594: 2019/03/10(日)22:19 ID:KcIurEvX(4/4)調 AAS
ごめん間違えた
>>571です
595: 2019/03/10(日)23:51 ID:THpHptm5(1)調 AAS
>>571 Node.js
https://ideone.com/l4XmDp
596: 2019/03/11(月)00:57 ID:HrDBQthw(1)調 AAS
>>571 Squeak/Pharo Smalltalk。nを複数指定可で

| fn |
fn := [:str :ns |
| ans |
ans := (String new: str size withAll: $*), String cr, str.
ns do: [:n | ans swap: n with: n + str size + 1].
ans
].

fn value: 'abc' value: #(2). "=>
'*b*
a*c' "

fn value: 'abcdef' value: #(2 3 5). "=>
'*bc*e*
a**d*f' "
600: 2019/03/11(月)09:18 ID:D2PSGRy3(1)調 AAS
>>571 Python

def split3(s,p=1) :
 r0= s[:p]+'*'+s[p+1:]
 r1= '*'*p + s[p] + '*'*(len(s)-(p+1))
 return r0+'\n'+r1

print(split3('abcd',2))
print(split3('abc',0))

'''結果
ab*d
**c*
*bc
a**
'''
603: 2019/03/11(月)11:35 ID:AGCERQh7(1)調 AAS
>>571 Io
f := method(s,n,
"*" repeated(s size)atPut(n - 1, s at(n - 1)) println
s asMutable atPut(n - 1, 42)println
)
f("abc",2)
実行結果
*b*
a*c
610: 2019/03/11(月)16:19 ID:+cahZmCl(3/5)調 AAS
>>571
Kotlin
https://paiza.io/projects/fOvQDvJ6VoTchgVL3pYJpw
622: 2019/03/11(月)22:40 ID:6pdTomDX(1)調 AAS
>>571 octave 複数列指定可能版
https://ideone.com/UqKcNb

h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + (i == n)), m, 1:numel(m)));

h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + any(i == n)), m, 1:numel(m)));
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.042s