庞果网在线编程之最长有效括号长度问题ruby解答
来源:互联网 发布:c socket 端口复用 编辑:程序博客网 时间:2024/04/30 06:11
题目地址:http://hero.pongo.cn/OnlineCompiler/Index?ID=54&ExamID=52
题目详情:
给定只包含括号字符'('和 ')''的字符串,请找出最长的有效括号内子括号的长度。
举几个例子如下:
- 例如对于"( ()",最长的有效的括号中的子字符串是"()" ,有效双括号数1个,故它的长度为 2。
- 再比如对于字符串") () () )",其中最长的有效的括号中的子字符串是"() ()",有效双括号数2个,故它的长度为4。
- 再比如对于"( () () )",它的长度为6。
换言之,便是有效双括号"()"数的两倍。
给定函数原型int longestValidParentheses(string s),请完成此函数,实现上述功能。
这道题目有些太小儿科了,凡是大学学过stack概念的人都应该直接就找到解题的方向吧。
class BracketString def initialize(string) @brackets = string.chars.to_a end def longest_valid_parentheses stack = [] match_count = 0 @brackets.each do |char| if stack.last == '(' and char == ')' stack.pop match_count += 1 else stack.push char end end match_count * 2 endenddescribe BracketString do it "should return 2 if input is (() " do BracketString.new("(()").longest_valid_parentheses.should == 2 end it "should return 4 if input is ) () () )" do BracketString.new(")()())").longest_valid_parentheses.should == 4 end it "should return 6 if input is ( () () ) " do BracketString.new("(()())").longest_valid_parentheses.should == 6 endend
- 庞果网在线编程之最长有效括号长度问题ruby解答
- 在线编程:最长有效括号的长度
- 挑战编程: 最长有效括号的长度
- 最长有效括号的长度问题
- 最长有效括号长度
- 庞果网在线编程字符串消除问题ruby解答
- 庞果网在线编程子序列的个数问题ruby解答
- 最长有效括号的长度
- 最长有效括号的长度
- ”最长有效括号的长度“
- 最长有效括号的长度
- 最长有效括号的长度
- 庞果网在线编程之数组排序ruby解答
- 字符串问题---括号字符串的有效性和最长有效长度
- 算法分析: 最长有效括号的长度
- 最长有效括号的长度--英雄会
- 最长有效括号长度(from pongo)
- 最长有效括号的长度(来自 庞果)
- sockaddr与sockaddr_in结构体简介
- 写在前面——说说我的故事
- objective-C运行时编程指南之类型编码
- 实例说明listen()函数第二个参数的意义与用法
- uva 11729 - Commando War(贪心)
- 庞果网在线编程之最长有效括号长度问题ruby解答
- android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()详解二之小秘与领导的故事
- UVa 306 / POJ 1026 / Central Europe 1995 Cipher (置换群)
- 剑指Offer详解之左旋转字符串
- fzu 1753 Another Easy Problem(n!的素因子分解)
- 编程面试的10大算法概念汇总
- python exception
- windows系统的启动工作原理
- 程序员的浮躁症,你有没有被戳中