algorithm - Rust 没有使用 read_line 正确接受输入
问题描述
我目前正在做一个练习 codeforces 问题,我的代码应该通过在任何位置添加一个“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");
}
}
}
}
我已经被困了一段时间,不知道是什么导致它无法工作,所以任何帮助将不胜感激!
解决方案
我最终解决了我的问题!我将其发布在这里并编辑我的问题,以防其他人将来遇到同样的问题。我使用 接受输入read_line
,其中包括空格。要删除空格,您应该使用.trim()
.
let mut word = String::new();
io::stdin().read_line(&mut word).unwrap();
word = word.trim().to_string();
推荐阅读
- python - 使用 Pandas Dataframe 写入 Excel
- kubernetes - Microk8s pod 卡在 Ubuntu 上待处理
- powershell - 有没有办法使 PowerShell GUI 选项卡透明?
- google-apps-script - 如何修改将公式仅应用于指定数量的行而不是将其应用于整个列的 Google 脚本
- java - 以 html 格式分享文本意图
- javascript - 在具有授权的路由内使用 Socket.io
- javascript - nodejs中的数组数据结构
- snowflake-schema - SnowSql 无响应
- sql - 自联接获取比较同一表中数据的记录
- tcl - 使 Tcl/Expect 语句不那么“贪婪”