首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查Ruby中闭括号、括号或括号的有效性

如何检查Ruby中闭括号、括号或括号的有效性
EN

Stack Overflow用户
提问于 2013-12-23 16:22:55
回答 5查看 6.9K关注 0票数 13

编写一个方法'valid_string?‘接受一个字符串。如果括号、括号和大括号正确关闭,则返回true。否则它会返回false。

代码语言:javascript
运行
复制
valid_string?("[ ]")                  # returns true
valid_string?("[  ")                  # returns false
valid_string?("[ ( text ) {} ]")      # returns true
valid_string?("[ ( text { ) } ]")     # returns false

我的代码:一切都是假的。甚至尝试在个别情况下使用显式布尔值,{} AC.26 () \x,等,都没有起作用。对所有内容都返回true或false。是我的司机密码吗?

代码语言:javascript
运行
复制
def valid_string?(str) 

    if str == ("\[\s+]")
        true
    else
        false
    end
end

更新的SOLUTION:------------------------------------------------是的!#匹配肯定更好!虽然我的最后一行测试代码正在计算为true。当它应该是假的。。。

代码语言:javascript
运行
复制
def valid_string?(str) 
if str.match "(\\[.+\\])" || "|(\\(\\))" || "|({})"
    return true
else
    return false
    end
end

puts valid_string?("[ ]")                  # returns true
puts valid_string?("[  ")                  # returns false
puts valid_string?("[ ( text ) {} ]")      # returns true
puts valid_string?("[ ( text { ) } ]")     # returns false
EN

Stack Overflow用户

发布于 2013-12-23 18:39:08

一个简单的计数程序怎么样?

代码语言:javascript
运行
复制
def valid_string?(str)
  match_count = 0

  str.each_char do |c|
    match_count += 1 if [ '[', '{', '(' ].include?(c)
    match_count -= 1 if [ ']', '}', ')' ].include?(c)
  end

  return match_count == 0
end
票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20747294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档