プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part14
http://mevius.5ch.net/test/read.cgi/tech/1558168409/
探検
プログラミングのお題スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
2019/07/28(日) 19:39:57.54ID:832c/ukY
400デフォルトの名無しさん
2019/09/10(火) 23:08:14.13ID:aMyCuNre お題
スネークケースをアッパーキャメルケースに変換せよ
アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること
また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと
(例)
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
スネークケースをアッパーキャメルケースに変換せよ
アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること
また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと
(例)
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
401デフォルトの名無しさん
2019/09/10(火) 23:20:02.02ID:Ik1iUNRF >>399
allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377みたいにキレイに書けない。
const allButFirst = arr => arr.slice(1);
const allButLast = arr => arr.slice(0, -1);
const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr));
fn([3,1,4,1,5,9,2,6,5]);
//=> [-2,3,-3,4,4,-7,4,-1]
allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377みたいにキレイに書けない。
const allButFirst = arr => arr.slice(1);
const allButLast = arr => arr.slice(0, -1);
const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr));
fn([3,1,4,1,5,9,2,6,5]);
//=> [-2,3,-3,4,4,-7,4,-1]
402デフォルトの名無しさん
2019/09/11(水) 00:10:49.73ID:JxGfX2fh >>400 Perl5
use feature say;
for (<DATA>) {
say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
実行結果
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
Uppercamelcase
use feature say;
for (<DATA>) {
say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
実行結果
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
Uppercamelcase
403デフォルトの名無しさん
2019/09/11(水) 00:26:05.86ID:JxGfX2fh404デフォルトの名無しさん
2019/09/11(水) 00:31:52.77ID:TkJgDVYV405デフォルトの名無しさん
2019/09/11(水) 00:44:08.30ID:hWizELa3 >>397
C++むずかしすぎワロタwwwww
C++むずかしすぎワロタwwwww
406デフォルトの名無しさん
2019/09/11(水) 00:47:45.94ID:TkJgDVYV C++とJSとの違いは大雑把に言って、使う型を先に決めるか後で決めるか。という程度だと思う。
オレ、自分の幸福度を上げるために、80行位で問題とくようにしている。
というか、手癖でそれくらいになる。
オレ、自分の幸福度を上げるために、80行位で問題とくようにしている。
というか、手癖でそれくらいになる。
407デフォルトの名無しさん
2019/09/11(水) 02:04:01.50ID:hWizELa3 >>400 JavaScript
const fn = s => s.split`_`
.map(([first, ...rest]) => [first.toUpperCase(), rest.join``.toLowerCase()].join``)
.reduce((acc, word) => acc + (/[0-9]{2}/.test(acc[acc.length - 1] + word[0]) ? '_' : '') + word);
fn('snake_case');
//=> "SnakeCase"
fn('ODAI00_99_TEST');
//=> "Odai00_99Test"
fn('x_0_x');
//=> "X0X"
fn('UpperCamelCase');
//=> "Uppercamelcase"
const fn = s => s.split`_`
.map(([first, ...rest]) => [first.toUpperCase(), rest.join``.toLowerCase()].join``)
.reduce((acc, word) => acc + (/[0-9]{2}/.test(acc[acc.length - 1] + word[0]) ? '_' : '') + word);
fn('snake_case');
//=> "SnakeCase"
fn('ODAI00_99_TEST');
//=> "Odai00_99Test"
fn('x_0_x');
//=> "X0X"
fn('UpperCamelCase');
//=> "Uppercamelcase"
408デフォルトの名無しさん
2019/09/11(水) 02:47:21.46ID:0/zUYWhl >>400 Squeak Smalltalk
| fn |
fn := [:str |
| words |
words := str asLowercase subStrings: '_'.
words first capitalized , (words overlappingPairsCollect: [:x :y |
((x last isDigit and: [y first isDigit]) ifTrue: '_' ifFalse: '') , y capitalized
]) join
].
fn value: 'snake_case'. "=> 'SnakeCase' "
fn value: 'ODAI00_99_TEST'. "=> 'Odai00_99Test' "
fn value: 'x_0_x'. "=> 'X0X' "
fn value: 'UpperCamelCase'. "=> 'Uppercamelcase' "
fn value: 'Odai00_9_9Test'. "=> 'Odai00_9_9test' "
| fn |
fn := [:str |
| words |
words := str asLowercase subStrings: '_'.
words first capitalized , (words overlappingPairsCollect: [:x :y |
((x last isDigit and: [y first isDigit]) ifTrue: '_' ifFalse: '') , y capitalized
]) join
].
fn value: 'snake_case'. "=> 'SnakeCase' "
fn value: 'ODAI00_99_TEST'. "=> 'Odai00_99Test' "
fn value: 'x_0_x'. "=> 'X0X' "
fn value: 'UpperCamelCase'. "=> 'Uppercamelcase' "
fn value: 'Odai00_9_9Test'. "=> 'Odai00_9_9test' "
409デフォルトの名無しさん
2019/09/11(水) 06:02:16.09ID:CEu0fvWD >400 Ruby
f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}
%w[
snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}
# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}
%w[
snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}
# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
410デフォルトの名無しさん
2019/09/11(水) 06:06:45.97ID:CEu0fvWD411デフォルトの名無しさん
2019/09/11(水) 12:54:52.45ID:Alp4BtBi412デフォルトの名無しさん
2019/09/11(水) 21:23:01.78ID:RlhjBlE6 お題:リストの奇数位置にある要素のみを含むリストを作れ
ただし、先頭要素を1番目と数える
[1, 2, 3, 4, 5]
↓
[1, 3, 5]
rust
https://ideone.com/yXYsFB
octave
https://ideone.com/Go8xXL
ただし、先頭要素を1番目と数える
[1, 2, 3, 4, 5]
↓
[1, 3, 5]
rust
https://ideone.com/yXYsFB
octave
https://ideone.com/Go8xXL
413デフォルトの名無しさん
2019/09/11(水) 21:27:05.78ID:C94vqLvq >>400
UpperCamelCaseはそのまま返すべきだろう。
(と言う事で、1文字目が大文字かつ全文に’_’が無い場合は、(恐らくUpperCamelCaseだろうと期待して)そのまま返すようにした)
Haskell
import Data.Char
main = mapM_ (print.f) ["snake_case","ODAI00_99_TEST","x_0_x","UpperCamelCase","notupperCamelCase"]
f [] = []
f lst@(x:_) | and [elem x ['A'..'Z'], (not.elem '_') lst] = lst
f (x:xs) = toUpper x:map toLower a ++ f (map toLower $ f' a b)
where
(a,b) = span (/= '_') xs
f' _ [] = []
f' [] (y:ys) = ys
f' xs lst@('_':y:ys) |and [(isDigit.last) xs, isDigit y] = lst
f' _ (_:ys) = ys
out:
"SnakeCase"
"Odai00_99Test"
"X0X"
"UpperCamelCase"
"Notuppercamelcase"
UpperCamelCaseはそのまま返すべきだろう。
(と言う事で、1文字目が大文字かつ全文に’_’が無い場合は、(恐らくUpperCamelCaseだろうと期待して)そのまま返すようにした)
Haskell
import Data.Char
main = mapM_ (print.f) ["snake_case","ODAI00_99_TEST","x_0_x","UpperCamelCase","notupperCamelCase"]
f [] = []
f lst@(x:_) | and [elem x ['A'..'Z'], (not.elem '_') lst] = lst
f (x:xs) = toUpper x:map toLower a ++ f (map toLower $ f' a b)
where
(a,b) = span (/= '_') xs
f' _ [] = []
f' [] (y:ys) = ys
f' xs lst@('_':y:ys) |and [(isDigit.last) xs, isDigit y] = lst
f' _ (_:ys) = ys
out:
"SnakeCase"
"Odai00_99Test"
"X0X"
"UpperCamelCase"
"Notuppercamelcase"
414デフォルトの名無しさん
2019/09/11(水) 23:29:56.75ID:sKkTHzOH >>400 Perl5、>>402-403 の修正、>>413 のように UpperCamelCase など_を含まない文字列はそのまま返す
use feature say;
for(<DATA>) {
@a = split/(?<!\d)_|_(?!\d)|\s/;
say 1 == @a ? @a : map{ucfirst lc} @a;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
_local_vvar_
lavel_style_
OdAi00_9_9TeST
実行結果
~ $ perl 15_400_fix.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
Odai00_9_9Test
use feature say;
for(<DATA>) {
@a = split/(?<!\d)_|_(?!\d)|\s/;
say 1 == @a ? @a : map{ucfirst lc} @a;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
_local_vvar_
lavel_style_
OdAi00_9_9TeST
実行結果
~ $ perl 15_400_fix.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
Odai00_9_9Test
415デフォルトの名無しさん
2019/09/11(水) 23:34:45.60ID:sKkTHzOH >>414 ゴメン、実行結果貼り間違えた(下記のように最後のOdAi00_9_9TeSTはそのまま出る)
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
OdAi00_9_9TeST
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
OdAi00_9_9TeST
416デフォルトの名無しさん
2019/09/11(水) 23:43:35.81ID:sKkTHzOH >>412 Perl5
@a = a..z;
@x = map{$_-1} grep{$_&1} 1..@a;
@b = @a[@x];
print "[@b]\n";
実行結果
~ $ perl 15_412.pl
[a c e g i k m o q s u w y]
@a = a..z;
@x = map{$_-1} grep{$_&1} 1..@a;
@b = @a[@x];
print "[@b]\n";
実行結果
~ $ perl 15_412.pl
[a c e g i k m o q s u w y]
417デフォルトの名無しさん
2019/09/12(木) 00:37:35.06ID:zD/2/X2z >>412
common lisp
(loop for i in '(1 2 3 4 5) for j from 1 when (eql 1 (mod j 2)) collect i)
(1 3 5)
common lisp
(loop for i in '(1 2 3 4 5) for j from 1 when (eql 1 (mod j 2)) collect i)
(1 3 5)
418デフォルトの名無しさん
2019/09/12(木) 02:26:36.91ID:IEWaKNAx419デフォルトの名無しさん
2019/09/12(木) 09:48:36.52ID:XoEd0LBY420デフォルトの名無しさん
2019/09/12(木) 11:37:50.98ID:Cxpf63qu421デフォルトの名無しさん
2019/09/12(木) 18:13:32.79ID:sKYe7PWn422デフォルトの名無しさん
2019/09/12(木) 18:34:25.79ID:u0+zztnJ423デフォルトの名無しさん
2019/09/12(木) 21:30:23.66ID:+vUO8BYK424デフォルトの名無しさん
2019/09/12(木) 21:33:45.75ID:cqw0/uFd さすがJ
サッパリ分からん
サッパリ分からん
425デフォルトの名無しさん
2019/09/13(金) 00:40:21.67ID:6zSQdjjj >>412
せめて、リストの中身は順番と関係無い内容の方が。。。
(例えば"abcde"とか)
Haskell
main = (print.oddlist) [1..5]
oddlist xs = [x | (x,y) <- zip xs [1..], odd y]
せめて、リストの中身は順番と関係無い内容の方が。。。
(例えば"abcde"とか)
Haskell
main = (print.oddlist) [1..5]
oddlist xs = [x | (x,y) <- zip xs [1..], odd y]
426デフォルトの名無しさん
2019/09/13(金) 02:03:47.81ID:qdoB8RTo427デフォルトの名無しさん
2019/09/13(金) 13:13:33.48ID:zfsxzWX8428デフォルトの名無しさん
2019/09/13(金) 21:31:55.35ID:5n7mddvT429デフォルトの名無しさん
2019/09/13(金) 21:37:33.86ID:sQZEDK+j tcl/tkで「tk部分ははいいがtclがクソ」みたいなのよく見た気がするんだけど、あれどういうとこが根拠なん?
430デフォルトの名無しさん
2019/09/14(土) 04:14:12.84ID:x5aQTHnU お題: すべての人民は和平のために火急的に速やかに自己の復元を実現しなければならない。
431デフォルトの名無しさん
2019/09/14(土) 04:28:39.19ID:BS6VTuNp432デフォルトの名無しさん
2019/09/14(土) 07:49:29.90ID:/8qdS/t9433デフォルトの名無しさん
2019/09/14(土) 08:17:19.38ID:G26P45sA434デフォルトの名無しさん
2019/09/14(土) 08:24:26.09ID:Hd+E1riT435デフォルトの名無しさん
2019/09/14(土) 08:30:44.01ID:G26P45sA436デフォルトの名無しさん
2019/09/14(土) 19:11:38.33ID:Rj/aIpzV >>426
クリプタって何?
クリプタって何?
437デフォルトの名無しさん
2019/09/14(土) 19:29:31.44ID:daGZRaa0 ザラキ唱える人じゃないか
438デフォルトの名無しさん
2019/09/14(土) 19:57:54.64ID:oc39AgJX439デフォルトの名無しさん
2019/09/14(土) 20:22:44.80ID:x5aQTHnU >>437
それはクリフト
それはクリフト
440デフォルトの名無しさん
2019/09/14(土) 21:03:45.14ID:KmV3vhTN cryptoなんだからcryptorじゃないの?
441蟻人間 ◆T6xkBnTXz7B0
2019/09/14(土) 21:19:35.56ID:0f+SL6BM それをゆうなら、encrypterの方が自然じゃん。
442デフォルトの名無しさん
2019/09/14(土) 22:06:47.02ID:31y0+jF3 でも、それをいうならの方が自然かも
443デフォルトの名無しさん
2019/09/14(土) 22:21:17.26ID:oc39AgJX EnCrypterか。了解。
忘れたらごめんなさい。
忘れたらごめんなさい。
444デフォルトの名無しさん
2019/09/14(土) 22:23:04.61ID:pQ8OW4Ak EnCrypterはおかしい
Encryperでいい
Encryperでいい
445デフォルトの名無しさん
2019/09/14(土) 22:23:28.79ID:pQ8OW4Ak tが抜けた
446デフォルトの名無しさん
2019/09/14(土) 22:26:10.43ID:hhxdRhHk EmScriptEn
447デフォルトの名無しさん
2019/09/14(土) 22:35:29.16ID:oc39AgJX448デフォルトの名無しさん
2019/09/14(土) 23:35:07.41ID:1m2PUwRG449デフォルトの名無しさん
2019/09/15(日) 10:23:47.74ID:4T3I9hnw >>426 Perl 5.30
# -*- coding: utf-8 -*-
no warnings 'experimental::signatures';
use feature qw(say signatures); # lexical_subs);
sub ReversibleHash_Encode($S, $C) {
@a = unpack 'C*', $S;
$l = @c = split '', $C;
my $o; ++$o while $l**$o < 256; #my $o = 1 + log(256)/log $l;
use integer;
my sub _enc($i) { join '', reverse map{($i, $m) = ($i/$l, $i%$l); $c[$m]} 1..$o }
%e = map{$_ => '%'._enc $_} 0..255;
join '', map{$e{$_}} @a;
}
sub ReversibleHash_Decode($S, $C) {
@s = $S =~ /(%\w+)/g;
%d = map{$e{$_} => $_ } keys %e;
pack 'C*', map{$d{$_}} @s;
}
say $t = ReversibleHash_Encode 'ウィキペディア', '0123456789';
say $s = ReversibleHash_Decode $t, '0123456789';
$Ch = "abcdefghijklnmopqrstuvwxyz0123456789";
say $t = ReversibleHash_Encode $s, $Ch;
say $s = ReversibleHash_Decode $t, $Ch;
実行結果
~ $ perl 15_426.pl
%227%130%166%227%130%163%227%130%173%227%131%154%227%131%135%227%130%163%227%130%162
ウィキペディア
%gl%dw%ew%gl%dw%et%gl%dw%e3%gl%dx%ek%gl%dx%d1%gl%dw%et%gl%dw%es
ウィキペディア
# -*- coding: utf-8 -*-
no warnings 'experimental::signatures';
use feature qw(say signatures); # lexical_subs);
sub ReversibleHash_Encode($S, $C) {
@a = unpack 'C*', $S;
$l = @c = split '', $C;
my $o; ++$o while $l**$o < 256; #my $o = 1 + log(256)/log $l;
use integer;
my sub _enc($i) { join '', reverse map{($i, $m) = ($i/$l, $i%$l); $c[$m]} 1..$o }
%e = map{$_ => '%'._enc $_} 0..255;
join '', map{$e{$_}} @a;
}
sub ReversibleHash_Decode($S, $C) {
@s = $S =~ /(%\w+)/g;
%d = map{$e{$_} => $_ } keys %e;
pack 'C*', map{$d{$_}} @s;
}
say $t = ReversibleHash_Encode 'ウィキペディア', '0123456789';
say $s = ReversibleHash_Decode $t, '0123456789';
$Ch = "abcdefghijklnmopqrstuvwxyz0123456789";
say $t = ReversibleHash_Encode $s, $Ch;
say $s = ReversibleHash_Decode $t, $Ch;
実行結果
~ $ perl 15_426.pl
%227%130%166%227%130%163%227%130%173%227%131%154%227%131%135%227%130%163%227%130%162
ウィキペディア
%gl%dw%ew%gl%dw%et%gl%dw%e3%gl%dx%ek%gl%dx%d1%gl%dw%et%gl%dw%es
ウィキペディア
450デフォルトの名無しさん
2019/09/15(日) 10:37:25.58ID:Pt8t6mL1 zipとunzip関数があるからそれで偶数と奇数に分ければいい
451デフォルトの名無しさん
2019/09/15(日) 11:42:49.90ID:4T3I9hnw >>412 Prl5 (≦5.28)、配列の添字を0始まり以外にする$[ (array_base feature)を使用
$[ = 1;
@a = a..z;
@x = grep{$_ & 1} 1..@a;
@b = @a[@x];
print "@b\n";
実行結果
~ $ perl 15_412_array_base.pl
a c e g i k m o q s u w y
※5.12〜5.28では$[は非推奨になり、設定すると
Use of assignment to $[ is deprecated at 15_412_2.pl line 1.
というwarningが出ます、5.30からは$[の設定できなくなりました
$[ = 1;
@a = a..z;
@x = grep{$_ & 1} 1..@a;
@b = @a[@x];
print "@b\n";
実行結果
~ $ perl 15_412_array_base.pl
a c e g i k m o q s u w y
※5.12〜5.28では$[は非推奨になり、設定すると
Use of assignment to $[ is deprecated at 15_412_2.pl line 1.
というwarningが出ます、5.30からは$[の設定できなくなりました
452デフォルトの名無しさん
2019/09/15(日) 15:11:01.79ID:G44yhCx+453デフォルトの名無しさん
2019/09/15(日) 15:41:23.29ID:5s85lzPu 鰐んぐ
魚にんぐ
魚にんぐ
454デフォルトの名無しさん
2019/09/15(日) 16:31:54.72ID:vhYJbDpr >>449
実行はしてないが、成果については「GJ!!」だ!
実行はしてないが、成果については「GJ!!」だ!
455デフォルトの名無しさん
2019/09/16(月) 04:35:46.66ID:NOoJUh0d お題: 文字列が渡されるので文字vの左隣の文字を小文字、右隣の文字を大文字に変換しなさい
456デフォルトの名無しさん
2019/09/16(月) 06:10:07.69ID:VWND3fAL >>455
"avbvc" の結果を教えてくれ
"avbvc" の結果を教えてくれ
457デフォルトの名無しさん
2019/09/16(月) 08:35:06.75ID:NOoJUh0d >>456
その場合はvに挟まれた文字をxに変換してください
その場合はvに挟まれた文字をxに変換してください
458デフォルトの名無しさん
2019/09/16(月) 08:42:47.33ID:3bKCxc1X >>457
"avvb" の結果を教えてくれ
"avvb" の結果を教えてくれ
459デフォルトの名無しさん
2019/09/16(月) 11:06:17.48ID:uJI/7eR2 頭悪そうなお題はパスで
460デフォルトの名無しさん
2019/09/16(月) 15:26:20.20ID:eLMc9ESO お題:1から100までの自然数がある。ランダムに30個抜き出せ。
461デフォルトの名無しさん
2019/09/16(月) 15:30:00.20ID:4Q9Ti1cA >>460 Ruby
p [*1..100].sample(30)
# => [13, 29, 96, 79, 78, 17, 89, 88, 69, 51, 44, 16, 54, 62,
47, 19, 45, 26, 43, 40, 91, 32, 30, 86, 84, 85, 15, 6, 41, 95]
p [*1..100].sample(30)
# => [13, 29, 96, 79, 78, 17, 89, 88, 69, 51, 44, 16, 54, 62,
47, 19, 45, 26, 43, 40, 91, 32, 30, 86, 84, 85, 15, 6, 41, 95]
462デフォルトの名無しさん
2019/09/16(月) 16:08:30.72ID:ShPpQTCq463デフォルトの名無しさん
2019/09/16(月) 16:53:32.17ID:P3J/MfSa >>460 Perl5、※選択に重複がないようにした
@a = 1..100;
use List::Util shuffle;
@b = (shuffle @a)[0..29];
print "@b\n";
実行結果
~ $ perl 15_460.pl
64 90 99 41 46 11 25 23 2 12 43 42 24 96 59 44 19 7 92 47 15 86 84 68 13 100 76 34 87 9
@a = 1..100;
use List::Util shuffle;
@b = (shuffle @a)[0..29];
print "@b\n";
実行結果
~ $ perl 15_460.pl
64 90 99 41 46 11 25 23 2 12 43 42 24 96 59 44 19 7 92 47 15 86 84 68 13 100 76 34 87 9
464デフォルトの名無しさん
2019/09/16(月) 16:59:32.09ID:ZgnCsjLO >>460 J
(30?100) { >: i. 100
(30?100) { >: i. 100
465デフォルトの名無しさん
2019/09/16(月) 17:36:43.98ID:enU8we0d >>464
なるほど全然わからん
なるほど全然わからん
466デフォルトの名無しさん
2019/09/16(月) 20:23:01.84ID:LKlzCOg4467デフォルトの名無しさん
2019/09/17(火) 17:37:59.85ID:IoM9hprN プログラム言語標準の文字列(e.g. java.lang.String) が与えられ、ランレングス圧縮した結果をプログラム言語標準の文字列で返す関数を作成してください。ただし、入力に数字が入っていた場合のケースは考慮しなくても構いません。
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"
468デフォルトの名無しさん
2019/09/17(火) 18:15:13.62ID:kyKgfAv0 あうあうあー -> あうあうあー
ああああ -> あ4
ああああ -> あ4
469デフォルトの名無しさん
2019/09/17(火) 18:37:25.07ID:IoM9hprN そゆこと
470デフォルトの名無しさん
2019/09/17(火) 19:42:43.30ID:N7hzq5cx python に あ2い2う2
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな
471デフォルトの名無しさん
2019/09/17(火) 21:40:53.07ID:nuFS/S7T472デフォルトの名無しさん
2019/09/17(火) 21:47:22.78ID:s7WBnLNZ >>467 JavaScript
const f = s => [...s]
.reduce((acc, ch) => {
const [lastCh, n = 1] = acc.pop() || [];
if (!lastCh) return [[ch]];
if (lastCh == ch) {
return [...acc, [lastCh, n + 1]];
} else {
return [...acc, [lastCh, n == 1 ? '' : n], [ch]];
}
}, [])
.flat(Infinity)
.join``;
const f = s => [...s]
.reduce((acc, ch) => {
const [lastCh, n = 1] = acc.pop() || [];
if (!lastCh) return [[ch]];
if (lastCh == ch) {
return [...acc, [lastCh, n + 1]];
} else {
return [...acc, [lastCh, n == 1 ? '' : n], [ch]];
}
}, [])
.flat(Infinity)
.join``;
473デフォルトの名無しさん
2019/09/17(火) 23:32:50.16ID:htBCID9n >>467 Perl5
use utf8;
binmode STDOUT, ':encoding(utf-8)';
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
print "$s\n";
}
実行結果
~ $ perl 15_467.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
use utf8;
binmode STDOUT, ':encoding(utf-8)';
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
print "$s\n";
}
実行結果
~ $ perl 15_467.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
474デフォルトの名無しさん
2019/09/17(火) 23:58:08.34ID:htBCID9n >>467 Perl5、しくった、お題は「関数を作れ」だった…orz
use utf8;
binmode STDOUT, ':encoding(utf-8)';
sub f {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
$s
}
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
print f($_)."\n";
}
~ $ perl 15_467_f.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
use utf8;
binmode STDOUT, ':encoding(utf-8)';
sub f {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
$s
}
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
print f($_)."\n";
}
~ $ perl 15_467_f.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
475デフォルトの名無しさん
2019/09/18(水) 10:00:45.90ID:Qm7jF2Kv >>467 Ruby
f = -> s {s.gsub(/(.)\1+/){[$1, $&.size].join}}
%w[あいうえお ああいいうう あいうあいう あうあうあー ああああ].each{|s| puts [s, f[s]].join(' => ')}
# =>
あいうえお => あいうえお
ああいいうう => あ2い2う2
あいうあいう => あいうあいう
あうあうあー => あうあうあー
ああああ => あ4
f = -> s {s.gsub(/(.)\1+/){[$1, $&.size].join}}
%w[あいうえお ああいいうう あいうあいう あうあうあー ああああ].each{|s| puts [s, f[s]].join(' => ')}
# =>
あいうえお => あいうえお
ああいいうう => あ2い2う2
あいうあいう => あいうあいう
あうあうあー => あうあうあー
ああああ => あ4
476デフォルトの名無しさん
2019/09/18(水) 10:37:56.54ID:Qm7jF2Kv >>432 Ruby
module Hoge
refine Array do
def oddlist
select.with_index{|s, i| i.odd?}
end
end
end
class C1
p [0, 1, 2, 3, 4].oddlist rescue p$!
# => #<NoMethodError: undefined method `oddlist' for []:Array>
end
class C2
using Hoge
p [0, 1, 2, 3, 4].oddlist
# => [1, 3]
end
module Hoge
refine Array do
def oddlist
select.with_index{|s, i| i.odd?}
end
end
end
class C1
p [0, 1, 2, 3, 4].oddlist rescue p$!
# => #<NoMethodError: undefined method `oddlist' for []:Array>
end
class C2
using Hoge
p [0, 1, 2, 3, 4].oddlist
# => [1, 3]
end
477デフォルトの名無しさん
2019/09/18(水) 15:45:23.52ID:GIOjMe2C478デフォルトの名無しさん
2019/09/18(水) 17:30:11.83ID:quy23QLp むずかし過ぎワロタwww
俺にC++は絶対ムリwwwww
俺にC++は絶対ムリwwwww
479デフォルトの名無しさん
2019/09/18(水) 17:40:05.70ID:GIOjMe2C480デフォルトの名無しさん
2019/09/18(水) 19:34:59.80ID:Dukdxvvo 完成品はないけどなw
481デフォルトの名無しさん
2019/09/18(水) 19:48:16.27ID:GIOjMe2C >>480
ウインドウズのアプリっぽいの一個位は作ったことあるよ。
ウインドウズのアプリっぽいの一個位は作ったことあるよ。
482デフォルトの名無しさん
2019/09/18(水) 19:56:52.36ID:Dukdxvvo はいはいいつもの
483デフォルトの名無しさん
2019/09/18(水) 20:22:10.02ID:GIOjMe2C >>482
ボット認定していい?
ボット認定していい?
484デフォルトの名無しさん
2019/09/18(水) 22:47:30.76ID:Zy9clRCR >>483
bot(だと自分で思ってる)相手にレスしちゃう男の人なんて……
bot(だと自分で思ってる)相手にレスしちゃう男の人なんて……
485蟻人間 ◆T6xkBnTXz7B0
2019/09/19(木) 03:17:38.21ID:fzYUHnaE お題: 明日の東京都の天気を教えてくれる「お天気ねえさん」を実装せよ。
https://www.drk7.jp/weather/
ここのXMLデータを参考に、明日の東京都の天気を優しく説明してくれるような説明テキストを生成せよ。
例) 明日XX月YY日の東京都の天気は○○です。○○注意報が出ています。傘を忘れないでね。
https://www.drk7.jp/weather/
ここのXMLデータを参考に、明日の東京都の天気を優しく説明してくれるような説明テキストを生成せよ。
例) 明日XX月YY日の東京都の天気は○○です。○○注意報が出ています。傘を忘れないでね。
486蟻人間 ◆T6xkBnTXz7B0
2019/09/19(木) 03:40:46.99ID:fzYUHnaE ある種のデータは石油のように重要だから、データ自動生成は条件が揃えばお金儲けにつながる。まあ、とことんチャレンジしたまえ。
487デフォルトの名無しさん
2019/09/19(木) 04:53:29.17ID:kXMoSLFb >>485
sh と perl5
https://pastebin.com/3dXzkYvR
https://i.imgur.com/G3ehbXa.png
colorlizerの中がperl入りで
見やすくするユーティリティー
sh と perl5
https://pastebin.com/3dXzkYvR
https://i.imgur.com/G3ehbXa.png
colorlizerの中がperl入りで
見やすくするユーティリティー
488デフォルトの名無しさん
2019/09/19(木) 20:26:10.81ID:tW2U1Dga google の検索結果を 10 づつ合計 1000 件ダウンロードするプログラム
490デフォルトの名無しさん
2019/09/19(木) 21:01:33.69ID:Iq+eqHsU >>467 Lua
マルチバイト文字には対応していない。
function f(s)
local r,c="",1
for i=1,#s do
if s:sub(i,i)==s:sub(i+1,i+1) then
c=c+1
else
r=r..s:sub(i,i)
if c>1 then
r=r..c
c=1
end
end
end
return(r)
end
print(f("aaabbc"))
実行結果
a3b2c
マルチバイト文字には対応していない。
function f(s)
local r,c="",1
for i=1,#s do
if s:sub(i,i)==s:sub(i+1,i+1) then
c=c+1
else
r=r..s:sub(i,i)
if c>1 then
r=r..c
c=1
end
end
end
return(r)
end
print(f("aaabbc"))
実行結果
a3b2c
491デフォルトの名無しさん
2019/09/19(木) 21:11:19.84ID:VNRPdI7o492デフォルトの名無しさん
2019/09/19(木) 21:20:20.35ID:7Zlc7qce >>467
perl5
デバッガが日本語で化けるんで英語だけ
print("aabbccddd" =~ s{ (.) \1* }{ "$1" . length"$&" }xgre);
a2b2c2d3
perl5
デバッガが日本語で化けるんで英語だけ
print("aabbccddd" =~ s{ (.) \1* }{ "$1" . length"$&" }xgre);
a2b2c2d3
493デフォルトの名無しさん
2019/09/20(金) 00:35:55.08ID:brDhMnbX >>485 Perl5 (LWP::UserAgent、LWP::Protocol::https、XML::Simple のinstallしてあるPCで)
# -*- coding: utf-8 -*-
use utf8; use Data::Dump 'dump'; use Data::Dumper;
binmode STDOUT, ':encoding(utf-8)';
use feature say;
$pno = 13; # ex) 01:北海道, 13:東京, 20:長野, 47:沖縄
$url = "https://www.drk7.jp/weather/xml/$pno.xml";
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
$xml = LWP::UserAgent->new->get($url)->content;
use XML::Simple;
my $xs = new XML::Simple; #(keyattr => ['area']); # (forcearray => ['info'], keyattr => ['pref']);
my $data = $xs->XMLin($xml);
say "$_: $data->{$_}" for qw{title link description pubDate author managingEditor};
$pref = $data->{pref}; say "都道府県: $pref->{id}";
%area = %{$pref->{area}};
for $region (keys %area) {
$area = $area{$region};
printf "地域: $region (緯度=%s, 経度=%s)\n", @{$area->{geo}}{qw{lat long}};
for $info (@{$area->{info}}) {
say " $info->{date} 天気:$info->{weather} (画像 $info->{img})";
$info->{$_} and say ' 'x9, $info->{$_} for qw{weather_detail wave};
%temp = %{$info->{temperature}};
say ' 'x6, " 気温[$temp{unit}]: ", join 'から', sort map{"$_->{content}°"} @{$temp{range}};
%rfc = %{$info->{rainfallchance}};
say ' 'x6, " 降水確率 : ", join ', ', map{"$_->{hour}時:$_->{content}$rfc{unit}"} @{$rfc{period}};
}
}
# -*- coding: utf-8 -*-
use utf8; use Data::Dump 'dump'; use Data::Dumper;
binmode STDOUT, ':encoding(utf-8)';
use feature say;
$pno = 13; # ex) 01:北海道, 13:東京, 20:長野, 47:沖縄
$url = "https://www.drk7.jp/weather/xml/$pno.xml";
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
$xml = LWP::UserAgent->new->get($url)->content;
use XML::Simple;
my $xs = new XML::Simple; #(keyattr => ['area']); # (forcearray => ['info'], keyattr => ['pref']);
my $data = $xs->XMLin($xml);
say "$_: $data->{$_}" for qw{title link description pubDate author managingEditor};
$pref = $data->{pref}; say "都道府県: $pref->{id}";
%area = %{$pref->{area}};
for $region (keys %area) {
$area = $area{$region};
printf "地域: $region (緯度=%s, 経度=%s)\n", @{$area->{geo}}{qw{lat long}};
for $info (@{$area->{info}}) {
say " $info->{date} 天気:$info->{weather} (画像 $info->{img})";
$info->{$_} and say ' 'x9, $info->{$_} for qw{weather_detail wave};
%temp = %{$info->{temperature}};
say ' 'x6, " 気温[$temp{unit}]: ", join 'から', sort map{"$_->{content}°"} @{$temp{range}};
%rfc = %{$info->{rainfallchance}};
say ' 'x6, " 降水確率 : ", join ', ', map{"$_->{hour}時:$_->{content}$rfc{unit}"} @{$rfc{period}};
}
}
494デフォルトの名無しさん
2019/09/20(金) 00:38:16.81ID:brDhMnbX 実行結果(例)
~ $ perl 15_485.pl
title: weather forecast xml
link: http://www.drk7.jp/weather/xml/13.xml
description: 気象庁の天気予報情報を XML で配信。1日1回 AM 6:00 ごろ更新。
pubDate: Thu, 19 Sep 2019 18:00:01 +0900
author: 気象庁
managingEditor: drk7.jp
都道府県: 東京都
地域: 伊豆諸島南部 (緯度=33.2419, 経度=139.8418)
2019/09/19 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
北東の風 やや強く くもり 夜のはじめ頃 雨 八丈島 では 夜遅く 雷を伴い 激しく 降る
波 3メートル うねり を伴う
気温[摂氏]: 21°から23°
降水確率 : 00-06時:0%, 06-12時:80%, 12-18時:50%, 18-24時:50%
2019/09/20 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/203.gif)
東の風 やや強く くもり 一時 雨
波 4メートル のち 3メートル ただし 三宅島 では 3メートル
気温[摂氏]: 20°から23°
降水確率 : 00-06時:50%, 06-12時:60%, 12-18時:60%, 18-24時:50%
2019/09/21 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 21°から26°
降水確率 : 00-06時:70%, 06-12時:70%, 12-18時:70%, 18-24時:70%
2019/09/22 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 23°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
2019/09/23 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 25°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
…(後略
~ $ perl 15_485.pl
title: weather forecast xml
link: http://www.drk7.jp/weather/xml/13.xml
description: 気象庁の天気予報情報を XML で配信。1日1回 AM 6:00 ごろ更新。
pubDate: Thu, 19 Sep 2019 18:00:01 +0900
author: 気象庁
managingEditor: drk7.jp
都道府県: 東京都
地域: 伊豆諸島南部 (緯度=33.2419, 経度=139.8418)
2019/09/19 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
北東の風 やや強く くもり 夜のはじめ頃 雨 八丈島 では 夜遅く 雷を伴い 激しく 降る
波 3メートル うねり を伴う
気温[摂氏]: 21°から23°
降水確率 : 00-06時:0%, 06-12時:80%, 12-18時:50%, 18-24時:50%
2019/09/20 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/203.gif)
東の風 やや強く くもり 一時 雨
波 4メートル のち 3メートル ただし 三宅島 では 3メートル
気温[摂氏]: 20°から23°
降水確率 : 00-06時:50%, 06-12時:60%, 12-18時:60%, 18-24時:50%
2019/09/21 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 21°から26°
降水確率 : 00-06時:70%, 06-12時:70%, 12-18時:70%, 18-24時:70%
2019/09/22 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 23°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
2019/09/23 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 25°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
…(後略
495デフォルトの名無しさん
2019/09/20(金) 01:09:22.21ID:brDhMnbX お天気おねぃさんとは、ほど遠いなコリャ…
496デフォルトの名無しさん
2019/09/20(金) 04:34:57.12ID:vpcMUgg5 お題
以下の、列区切りが空白である入力文字列を、
最後の列の数値が、小さい順番で、行を並べ替えよ
答えは、上下が反転する
a b c 44
x y 33
z 22
11
以下の、列区切りが空白である入力文字列を、
最後の列の数値が、小さい順番で、行を並べ替えよ
答えは、上下が反転する
a b c 44
x y 33
z 22
11
497デフォルトの名無しさん
2019/09/20(金) 07:37:10.18ID:ZVVuMGcz >>496
cat text
a b c 44
x y 33
z 22
11
cat text | perl -pe 's/.*? \s? (\d+)/$1:$&/xgm' | sort -n | perl -pe 's/^\d+://'
11
z 22
x y 33
a b c 44
cat text
a b c 44
x y 33
z 22
11
cat text | perl -pe 's/.*? \s? (\d+)/$1:$&/xgm' | sort -n | perl -pe 's/^\d+://'
11
z 22
x y 33
a b c 44
498デフォルトの名無しさん
2019/09/20(金) 08:14:00.92ID:ImrTQZdo >>467
Common Lisp https://ideone.com/1VXrLk
Perl https://ideone.com/8SVG3V
JavaScript https://ideone.com/Cn73uX
Common Lisp https://ideone.com/1VXrLk
Perl https://ideone.com/8SVG3V
JavaScript https://ideone.com/Cn73uX
499デフォルトの名無しさん
2019/09/20(金) 09:52:16.00ID:PYkAN+VQ >>496 Ruby
puts <<~EOS.each_line.sort_by{|s| s[/\S+\n?/].to_i}
a b c 44
x y 33
z 22
11
EOS
# =>
11
z 22
x y 33
a b c 44
puts <<~EOS.each_line.sort_by{|s| s[/\S+\n?/].to_i}
a b c 44
x y 33
z 22
11
EOS
# =>
11
z 22
x y 33
a b c 44
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★3 [蚤の市★]
- JAが"政府の備蓄米買い上げ"見越して価格下げず!?「古いコメは食用向きでないなどと理由をつけ...」専門家解説 [煮卵★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【結婚の壁】結婚どころか今まで恋愛経験は一切ない人も…「年収500万の壁」を突破できない中間層の苦しい現実 [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【高市悲報】維新奥下「企業から陳情のためにキャバクラに呼ばれたんや😤いい迷惑やったが断り辛かった」 [359965264]
- 日本、愚民化教育大成功!国際競争力は落ち国民は飢え中国との戦争を求める国民だらけになる [819729701]
- 【高市悲報】レーダー照射で日本が喧嘩売ってる中、アメリカ軍「我々はパールハーバーを忘れない」と日本に向けてポストへ [709039863]
- 高市首相「自らの命は自らが守るという原則で、行動とっていただきたい」 [256556981]
- 本当の問題は高市がバカなことじゃなくて高市みたいなバカを支持するバカが大量にいることだよな [314039747]
- 【悲報】おこめ券効果アンケート、全年代で「効果なし」と回答されてしまう [733893279]
