[過去ログ]
プログラミングのお題スレ Part21 (1002レス)
プログラミングのお題スレ Part21 http://mevius.5ch.net/test/read.cgi/tech/1668333636/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
722: デフォルトの名無しさん [sage] 2023/06/05(月) 17:20:26.45 ID:41NWmDDP お題 逆順に 文字列が与えられます 使われている文字のリストを作って並べその“反対の”文字を対応させます 例えば登場文字列が HELLO WORLD なら出てくる文字をコード順に並べると " DEHLORW" であるので E → O, L →H, ' '→W となります(空白、句読点等一切区別せず一文字と考えます) この対応で入力された文字列を変換してください 例 HELLO WORLD → LOHHEW EDHR ⑨⑫⑦②⑤⑭⑰⑳㉔①⑩⑬㉒⑲④⑮⑪⑧㉓⑥③⑯㉑⑱ → ⑯⑬⑱㉓⑳⑪⑧⑤①㉔⑮⑫③⑥㉑⑩⑭⑰②⑲㉒⑨④⑦ http://mevius.5ch.net/test/read.cgi/tech/1668333636/722
723: デフォルトの名無しさん [] 2023/06/05(月) 19:56:23.90 ID:8ZOWtKfv >>722 Java https://paiza.io/projects/ThIWBUU33EC_Tv88KPog8A http://mevius.5ch.net/test/read.cgi/tech/1668333636/723
725: 638 [sage] 2023/06/05(月) 21:31:53.30 ID:4V5NjjYa >>722 Perl5 use feature qw{signatures say}; use utf8; binmode STDOUT => 'utf8'; use Encode 'encode'; sub f($s) { @s = split '', $s; %h = map{unpack('H*', encode('utf-8', $_)) => $_} @s; @i = reverse @c = sort keys %h; %o = map{$h{$c[$_]} => $h{$i[$_]}} 0..$#c; say map{$o{$_}} @s; } f 'HELLO WORLD'; f '⑨⑫⑦②⑤⑭⑰⑳?①⑩⑬?⑲④⑮⑪⑧?⑥③⑯?⑱'; ※見易くするためインデントは全角スペースに置換してあります。 実行結果: $ perl 21_722.pl LOHHEW EDHR ⑯⑬⑱?⑳⑪⑧⑤①?⑮⑫③⑥?⑩⑭⑰②⑲?⑨④⑦ http://mevius.5ch.net/test/read.cgi/tech/1668333636/725
726: 638 [sage] 2023/06/05(月) 21:35:18.29 ID:4V5NjjYa >>722 Perl5 スマソ、ビューワーから書き込んだら丸数字の一部が文字化けしたのでブラウザから再書き込み use feature qw{signatures say}; use utf8; binmode STDOUT => 'utf8'; use Encode 'encode'; sub f($s) { @s = split '', $s; %h = map{unpack('H*', encode('utf-8', $_)) => $_} @s; @i = reverse @c = sort keys %h; %o = map{$h{$c[$_]} => $h{$i[$_]}} 0..$#c; say map{$o{$_}} @s; } f 'HELLO WORLD'; f '????????㉔???㉒?????㉓???㉑?'; 実行結果 $ perl 21_722.pl LOHHEW EDHR ???㉓?????㉔????㉑?????㉒??? http://mevius.5ch.net/test/read.cgi/tech/1668333636/726
727: デフォルトの名無しさん [] 2023/06/05(月) 22:09:27.65 ID:hSG7KPux >>722 PowerShell 4以上 (U+10000以上の文字、結合文字、異体字セレクタに対応) foreach ($s in "HELLO WORLD", "????????㉔???㉒?????㉓???㉑?", "魚と花󠄁か゚𩸽") { $c = [Globalization.StringInfo]::GetTextElementEnumerator($s) | sort | unique $h = @{} 0..($c.length - 1) |% {$h[$c[$_]] = $c[-$_ - 1]} -join $h[[Globalization.StringInfo]::GetTextElementEnumerator($s)] } [実行結果] LOHHEW EDHR ???㉓?????㉔????㉑?????㉒??? と魚花󠄁𩸽か゚ http://mevius.5ch.net/test/read.cgi/tech/1668333636/727
731: デフォルトの名無しさん [sage] 2023/06/06(火) 21:42:34.58 ID:hMwocYm9 >>722 ruby https://ideone.com/yqb6sd f = ->(s) {s.chars.uniq.sort.join.tap{|u| break s.tr(u, u.reverse)}} p f.('HELLO WORLD') p f.('????????㉔???㉒?????㉓???㉑?') #p f.('HELLO WORLD-') # trのパターンになっちゃう文字があるとダメ http://mevius.5ch.net/test/read.cgi/tech/1668333636/731
732: デフォルトの名無しさん [] 2023/06/06(火) 22:14:45.84 ID:x5qPYUnP >>722 >>727では大・小・全角・半角文字が区別されないのを修正した。PowerShell 2でも正しく動作するようになった。 foreach ($s in "HELLO WORLD", "????????㉔???㉒?????㉓???㉑?", "魚と花󠄁か゚𩸽", "HeLLO WoRLD") { $c = [Globalization.StringInfo]::GetTextElementEnumerator($s) | sort -unique {[int[]][char[]]$_} $h = New-Object Collections.Hashtable 0..($c.length - 1) |% {$h[$c[$_]] = $c[-$_ - 1]} -join $h[[Globalization.StringInfo]::GetTextElementEnumerator($s)] } [実行結果] LOHHEW EDHR ???㉓?????㉔????㉑?????㉒??? と魚花󠄁𩸽か゚ oLeeRW HODL http://mevius.5ch.net/test/read.cgi/tech/1668333636/732
750: デフォルトの名無しさん [] 2023/06/10(土) 01:30:29.55 ID:yUcAFYfk >>722 Kotlin ○付き数字はブラウザやフォントの設定によっては表示が文字ごとに大きかったり小さかったりするかも知れない。 https://paiza.io/projects/I5rPp0OBjWg6RdMlWu3t5g http://mevius.5ch.net/test/read.cgi/tech/1668333636/750
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.034s