ruby - 为什么当我使用gets时我的字符串长度会+1?
问题描述
我必须制定一个算法来检查一个短语是否是回文,但我可以注意到该方法会增加我的字符串长度。但我不确定我的代码发生了什么..
puts "Phrase: "
# before
# str = gets.to_s
str = gets.chomp
def palindrome(string)
split_string = string.split("")
reversed = []
string.size.times { reversed << split_string.pop }
str = reversed.join.delete(" ")
str2 = string.delete(" ")
if str == str2
puts "Is a palindrome!!!"
else
puts "Not a palindrome!"
end
end
palindrome("a santa lived as a devil at nasa")
# Right
palindrome("It's not a palindrome")
# Right
palindrome(str)
# I put any palindrome phrase like "race car" and I get the wrong result
解决方案
我只是在获取后使用.chomp。我觉得自己好笨...
str = gets.chomp
没有它,gets 方法在末尾包含一个换行符
推荐阅读
- docker - Docker容器中Flask Celery和RabbitMQ之间的连接问题
- r - 有没有办法使用 R 函数连接几列?
- python - 给定两个二进制字符串,返回它们的和(也是一个二进制字符串)
- codeigniter - 为什么我的 BaseUrl 在 CodeIgniter 4 中不起作用?
- python - Wilcoxon 秩和 / Man-Whitney-U 检验的精确统计量
- reactjs - 无法输入 HOC 来添加默认道具
- android-studio - 将生成的密钥库文件保存在 android studio 项目中是否安全?
- r - 扩展子集以包含整个数据集
- emacs - 在 10.15.7 和 emacs 27.1 上将 F1 重新映射到 ESC(或元)
- ms-access - 运行时错误:3027 数据库或对象是只读的