【发布时间】:2021-03-28 13:29:22
【问题描述】:
我最近尝试在 open.kattis.com 上进行在线编程挑战纹理分析;然而,尽管我对样本案例的回答在我的个人测试中是正确的,但我不断得到第二个样本案例错误,提交状态显示:“错误答案”。我的代码有什么问题?
Link to the kattis problem。我的代码:
use std::io::{self, BufRead};
fn main() {
let mut line: i8 = 0;
let stdin = io::stdin();
for input in stdin.lock().lines().map(|l| l.unwrap()) {
line += 1;
if input == "END" {
break;
}
let pattern = input
.split("*")
.filter(|&i| i.contains("."))
.collect::<Vec<&str>>();
let c = pattern
.iter()
.all(|j| j.len() == pattern[0].len());
if (c && pattern.len() != 1 ) || pattern.len() == 0 {
println!("{} EVEN", line);
} else {
println!("{} NOT EVEN", line);
}
}
}
【问题讨论】:
-
如果你得到
.**.*作为输入怎么办? -
每一行都以黑色像素开始和结束
-
同样的概念仍然适用:如果你得到
**.*.*怎么办? -
哦,是的,我猜如果分隔符之间没有任何内容,那么它不会将其添加到模式列表中,谢谢
标签: loops rust iterator iteration kattis