プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part21
https://mevius.5ch.net/test/read.cgi/tech/1668333636/
プログラミングのお題スレ Part22
1デフォルトの名無しさん
2023/08/03(木) 13:52:13.20ID:/xW45k0z2デフォルトの名無しさん
2023/08/03(木) 14:04:23.10ID:Lr04Zjag >>1
O2
O2
3デフォルトの名無しさん
2023/08/06(日) 12:21:14.08ID:/9zIb/V0 お題
1行につき一つの文章が入力されます
アルファベット26文字がすべて含まれている文章をフィルタリングしてください
大文字小文字は区別しません
そのうちもっとも短い文章を出力してください
入力
The quick brown fox jumps over a lazy dog.
The jay, pig, fox, zebra and my wolves quack!
Pack my box with seven dozen liquor jugs.
The horse, pig, fox, zebra and my wolves quack!
Jackdaws love my small sphinx of quartz.
Jackdaws love my big sphinx of quartz.
The quick brown fox jumps over a lazy cat.
Pack my box with five dozen liquor jugs.
出力
Jackdaws love my big sphinx of quartz.
1行につき一つの文章が入力されます
アルファベット26文字がすべて含まれている文章をフィルタリングしてください
大文字小文字は区別しません
そのうちもっとも短い文章を出力してください
入力
The quick brown fox jumps over a lazy dog.
The jay, pig, fox, zebra and my wolves quack!
Pack my box with seven dozen liquor jugs.
The horse, pig, fox, zebra and my wolves quack!
Jackdaws love my small sphinx of quartz.
Jackdaws love my big sphinx of quartz.
The quick brown fox jumps over a lazy cat.
Pack my box with five dozen liquor jugs.
出力
Jackdaws love my big sphinx of quartz.
4デフォルトの名無しさん
2023/08/06(日) 17:47:37.64ID:RhhSFLLO5デフォルトの名無しさん
2023/08/06(日) 18:08:09.04ID:RhhSFLLO2023/08/06(日) 19:07:03.27ID:Md+pNxjw
use std::io::{self, BufRead, BufReader};
const FULL_BITS: u32 = (1 << 26) - 1;
fn main() {
let mut shortest: Option<String> = None;
for line in BufReader::new(io::stdin()).lines() {
let line = line.unwrap();
let mut bits = 0;
for b in line.as_bytes() {
let index = match b {
b'A'..=b'Z' => b - b'A',
b'a'..=b'z' => b - b'a',
_ => continue,
};
bits |= 1 << index;
}
if bits != FULL_BITS {
continue;
}
if let Some(ref shortest) = shortest {
if shortest.len() < line.len() {
continue;
}
}
shortest = Some(line);
}
if let Some(shortest) = shortest {
println!("{shortest}");
} else {
eprintln!("ERROR: no matched lines");
}
}
const FULL_BITS: u32 = (1 << 26) - 1;
fn main() {
let mut shortest: Option<String> = None;
for line in BufReader::new(io::stdin()).lines() {
let line = line.unwrap();
let mut bits = 0;
for b in line.as_bytes() {
let index = match b {
b'A'..=b'Z' => b - b'A',
b'a'..=b'z' => b - b'a',
_ => continue,
};
bits |= 1 << index;
}
if bits != FULL_BITS {
continue;
}
if let Some(ref shortest) = shortest {
if shortest.len() < line.len() {
continue;
}
}
shortest = Some(line);
}
if let Some(shortest) = shortest {
println!("{shortest}");
} else {
eprintln!("ERROR: no matched lines");
}
}
7デフォルトの名無しさん
2023/08/06(日) 20:04:54.35ID:pJXl8PQk8デフォルトの名無しさん
2023/08/07(月) 01:25:47.55ID:dolrRGoi >>6
それなんて言語?
それなんて言語?
99
2023/08/07(月) 01:46:18.23ID:PMO8D1QO >>3 Perl5
for (<DATA>) {
my %h = map{$_ => 1} grep{/[a-z]/i} split '';
push @a, $_ if 26 == keys %h;
}
@s = sort{length($a) <=> length($b)} @a;
print $s[0];
__DATA__
The quick brown fox jumps over a lazy dog.
The jay, pig, fox, zebra and my wolves quack!
Pack my box with seven dozen liquor jugs.
The horse, pig, fox, zebra and my wolves quack!
Jackdaws love my small sphinx of quartz.
Jackdaws love my big sphinx of quartz.
The quick brown fox jumps over a lazy cat.
Pack my box with five dozen liquor jugs.
※ 見易くするためインデントを全角スペースに置換してあります。
実行結果:
$ perl 22_3_az26.pl
Jackdaws love my big sphinx of quartz.
for (<DATA>) {
my %h = map{$_ => 1} grep{/[a-z]/i} split '';
push @a, $_ if 26 == keys %h;
}
@s = sort{length($a) <=> length($b)} @a;
print $s[0];
__DATA__
The quick brown fox jumps over a lazy dog.
The jay, pig, fox, zebra and my wolves quack!
Pack my box with seven dozen liquor jugs.
The horse, pig, fox, zebra and my wolves quack!
Jackdaws love my small sphinx of quartz.
Jackdaws love my big sphinx of quartz.
The quick brown fox jumps over a lazy cat.
Pack my box with five dozen liquor jugs.
※ 見易くするためインデントを全角スペースに置換してあります。
実行結果:
$ perl 22_3_az26.pl
Jackdaws love my big sphinx of quartz.
2023/08/07(月) 01:57:03.56ID:PMO8D1QO
>>9 ゴメン、2行目に間違いあり…orz
my %h = map{$_ => 1} grep{/[a-z]/i} split '';
↓正しくは
my %h = map{$_ => 1} map{lc} grep{/[a-z]/i} split '';
実行結果は今回のテストデータだとたまたま同じ結果になる。
my %h = map{$_ => 1} grep{/[a-z]/i} split '';
↓正しくは
my %h = map{$_ => 1} map{lc} grep{/[a-z]/i} split '';
実行結果は今回のテストデータだとたまたま同じ結果になる。
2023/08/07(月) 09:39:33.60ID:3KYy8N/l
>>8
Rustでは?
Rustでは?
12デフォルトの名無しさん
2023/08/07(月) 19:28:19.42ID:dolrRGoi2023/08/07(月) 20:51:54.50ID:ZWV0+Q1Z
14デフォルトの名無しさん
2023/08/08(火) 16:30:48.37ID:mHXT/QMM >>10 2行目はもっと簡潔に書ける
my %h = map{$_ => 1} map{lc} grep{/[a-z]/i} split '';
↓
my %h = map{lc $_ => 1} /([A-Za-z])/g;
結局、これでよい筈
for (<DATA>) {
my %h = map{lc $_ => 1} /([A-Za-z])/g;
push @a, $_ if 26 == keys %h;
}
@s = sort{length $a <=> length $b} @a;
print $s[0];
__DATA__
… (ry
my %h = map{$_ => 1} map{lc} grep{/[a-z]/i} split '';
↓
my %h = map{lc $_ => 1} /([A-Za-z])/g;
結局、これでよい筈
for (<DATA>) {
my %h = map{lc $_ => 1} /([A-Za-z])/g;
push @a, $_ if 26 == keys %h;
}
@s = sort{length $a <=> length $b} @a;
print $s[0];
__DATA__
… (ry
2023/08/08(火) 19:36:27.56ID:ODiXw46s
>>3
Rust
use std::collections::HashSet;
use std::io::{self, BufRead, BufReader};
fn main() {
match BufReader::new(io::stdin())
.lines()
.map(Result::unwrap)
.filter(|line| {
line.bytes()
.filter(|b| matches!(b, b'A'..=b'Z'| b'a'..=b'z'))
.collect::<HashSet<_>>()
.len()
.eq(&26)
})
.min_by_key(String::len)
{
Some(shortest) => println!("{shortest}"),
None => eprintln!("ERROR: no matched lines"),
}
}
Rust
use std::collections::HashSet;
use std::io::{self, BufRead, BufReader};
fn main() {
match BufReader::new(io::stdin())
.lines()
.map(Result::unwrap)
.filter(|line| {
line.bytes()
.filter(|b| matches!(b, b'A'..=b'Z'| b'a'..=b'z'))
.collect::<HashSet<_>>()
.len()
.eq(&26)
})
.min_by_key(String::len)
{
Some(shortest) => println!("{shortest}"),
None => eprintln!("ERROR: no matched lines"),
}
}
2023/08/09(水) 12:27:32.68ID:ZMLVZrF/
17デフォルトの名無しさん
2023/08/10(木) 13:37:16.01ID:YYBOmFjO18蟻人間 ◆T6xkBnTXz7B0
2023/08/10(木) 19:00:30.10ID:kqXaMgBC お題: ちょっとした画像処理。
赤い丸がいくつか描画された不透明な画像ファイル「input.png」を読み込んで、赤い丸を緑の丸に描き変えたものを画像ファイル「output.png」に保存するプログラム。
ここに「赤い」とは、HSV色空間において、色相が0度~60度か300度~360度の範囲にあり、彩度が30%以上で、明度が50%以上の色であると定義する。
「丸」とは、円形度が0.7~1.3の範囲の単一色の図形であると定義する。
「緑」とはRGBで#008000の色であると定義する。
赤い丸がいくつか描画された不透明な画像ファイル「input.png」を読み込んで、赤い丸を緑の丸に描き変えたものを画像ファイル「output.png」に保存するプログラム。
ここに「赤い」とは、HSV色空間において、色相が0度~60度か300度~360度の範囲にあり、彩度が30%以上で、明度が50%以上の色であると定義する。
「丸」とは、円形度が0.7~1.3の範囲の単一色の図形であると定義する。
「緑」とはRGBで#008000の色であると定義する。
2023/08/10(木) 19:03:42.87ID:0ymjHRaX
絶対自分でやる気ないお題出すな
レスを投稿する
