【发布时间】:2021-04-03 22:00:53
【问题描述】:
我目前正在执行practice codeforces problem,我的代码应该检查是否可以通过在任何位置添加“a”来使字符串不是回文,如果是,则返回是和正确的字符串,并且如果不是,则不。
如果我只有 2 行输入(包括案例数和字符串),我的代码可以正常工作:
1
a
(returns no)
但如果我有更多,由于某种原因它开始不起作用:
2
a
a
(returns yes for first "a", and no for second)
这是我的代码:
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).expect("");
let num = input.trim().parse::<i32>().unwrap();
for _ in 0..num {
let mut word = String::new();
io::stdin().read_line(&mut word).unwrap();
for c in 0..word.len() {
let mut wordtemp = word.clone();
wordtemp.insert(c, 'a');
if wordtemp != wordtemp.chars().rev().collect::<String>() {
println!("YES");
print!("{}", wordtemp);
break;
} else if c == word.len()-1 {
println!("NO");
}
}
}
}
我已经被困了一段时间,不知道是什么导致它无法工作,所以任何帮助将不胜感激!
【问题讨论】: