karelpeeters
05/24/2018, 7:01 PMj - i + 1
?warriorprincess
05/24/2018, 7:02 PMwarriorprincess
05/24/2018, 7:02 PMkarelpeeters
05/24/2018, 7:02 PMwarriorprincess
05/24/2018, 7:03 PMwarriorprincess
05/24/2018, 7:03 PMwarriorprincess
05/24/2018, 7:03 PMkarelpeeters
05/24/2018, 7:03 PMkarelpeeters
05/24/2018, 7:03 PMwarriorprincess
05/24/2018, 7:06 PMfun longestValidParentheses(s: String): Int {
var longest = 0
for (i in 0 until s.length) {
var balance = 0
for (j in 0 until s.length) {
if (s[j] == '(') balance += 1 else balance -= 1
if (balance < 0) break
if (balance == 0 && j-1 > longest) longest = j-i+1
}
}
return longest
}
fun main(args: Array<String>) {
println(longestValidParentheses("(()"))
println(longestValidParentheses("))))())(())()))(()()(())(())()))(((()()))()()))(())(())()())()(()())((()(((())()())(()())(())((()))))())()))()(())))())()))(()))((()())((()(())))(()))))))))((())(()()((())()()(()))))(((()(())))())))()())))())()()())()(())()(((())()))()()())))()())))()((((((())((())))((())())(((()())())()((((((()())((()()(())(()))(()())()))()(()(()())(()))((())((())))))()()))))()())()))))((((())(())))((()))(()()()()()((())((((())())()())()())(()(()()))())(((()())(()))()))(())()((()(())))))()())())()()(())))((())()()()))(())((()())))))((()((((()(((())()))))(()))()()))(()(())(()((()()()))))()))()()(((()()(())())()(())(()()()))()(()())))()((()((()))))())()(())()(()()((()()())(((())((())))(()())))()))()()())()))((()))(((()()()((()))))()()()))()))())())))))())()))(()))))(()()()))()((())))((())))()))(()()()()()()(()))())())(((())))(())(()(()())((()()()()))()()(()()))(()())(()()()((()()(((()(()((()((((()((())((()()))))))()())())(()(())()((((()()()()()))))()())()((())))))))()(((()())))()(()()(()()()()))()((((()((())(())))())))(()()()())()))))))((()))())((())(()(()(((()()()((((()()))())()())()())()))))())()(((()))))()()())))(())())))(())())((()))(())))(((()()))((((()))(()()))())((()())(()))(()(())(()(()))((((((()()(()()(()))()(()(())((((((((()(()())((())))())()())(()(()()))))(()(()()()))(()((()(((())((())(())()(()()())(()))())((()((((((())())(())()(()()(()())(())())()()))())(()))(())))()())))()()((()))())()()(())(()())()())())())))()()))((((()((()(())(((())()((())(())())))))()(()))())()))())(((())))))((((()(()()))))(((())(((())((())))))()()))()(()(((((((()))))((()))())()(())()))())())((()))))((())(())))(((())((((()(())(())()(((((())))()))()(()())(()()(())()(((()))())())))()))()()())(("))
}
warriorprincess
05/24/2018, 7:06 PMwarriorprincess
05/24/2018, 7:07 PMfun longestValidParentheses(s: String): Int {
var longest = 0
for (i in 0 until s.length) {
var balance = 0
for (j in 0 until s.length) {
if (s[j] == '(') balance += 1 else balance -= 1
if (balance < 0) break
if (balance == 0 && j-i > longest) longest = j-i+1
}
}
return longest
}
fun main(args: Array<String>) {
println(longestValidParentheses("(()"))
println(longestValidParentheses("))))())(())()))(()()(())(())()))(((()()))()()))(())(())()())()(()())((()(((())()())(()())(())((()))))())()))()(())))())()))(()))((()())((()(())))(()))))))))((())(()()((())()()(()))))(((()(())))())))()())))())()()())()(())()(((())()))()()())))()())))()((((((())((())))((())())(((()())())()((((((()())((()()(())(()))(()())()))()(()(()())(()))((())((())))))()()))))()())()))))((((())(())))((()))(()()()()()((())((((())())()())()())(()(()()))())(((()())(()))()))(())()((()(())))))()())())()()(())))((())()()()))(())((()())))))((()((((()(((())()))))(()))()()))(()(())(()((()()()))))()))()()(((()()(())())()(())(()()()))()(()())))()((()((()))))())()(())()(()()((()()())(((())((())))(()())))()))()()())()))((()))(((()()()((()))))()()()))()))())())))))())()))(()))))(()()()))()((())))((())))()))(()()()()()()(()))())())(((())))(())(()(()())((()()()()))()()(()()))(()())(()()()((()()(((()(()((()((((()((())((()()))))))()())())(()(())()((((()()()()()))))()())()((())))))))()(((()())))()(()()(()()()()))()((((()((())(())))())))(()()()())()))))))((()))())((())(()(()(((()()()((((()()))())()())()())()))))())()(((()))))()()())))(())())))(())())((()))(())))(((()()))((((()))(()()))())((()())(()))(()(())(()(()))((((((()()(()()(()))()(()(())((((((((()(()())((())))())()())(()(()()))))(()(()()()))(()((()(((())((())(())()(()()())(()))())((()((((((())())(())()(()()(()())(())())()()))())(()))(())))()())))()()((()))())()()(())(()())()())())())))()()))((((()((()(())(((())()((())(())())))))()(()))())()))())(((())))))((((()(()()))))(((())(((())((())))))()()))()(()(((((((()))))((()))())()(())()))())())((()))))((())(())))(((())((((()(())(())()(((((())))()))()(()())(()()(())()(((()))())())))()))()()())(("))
}
warriorprincess
05/24/2018, 7:07 PMkarelpeeters
05/24/2018, 7:08 PMwarriorprincess
05/24/2018, 7:09 PMkarelpeeters
05/24/2018, 7:12 PMfor (j in i until s.length)
karelpeeters
05/24/2018, 7:12 PM+1
karelpeeters
05/24/2018, 7:13 PMj-i+1 > longest
nowwarriorprincess
05/24/2018, 7:14 PMwarriorprincess
05/24/2018, 7:15 PMwarriorprincess
05/24/2018, 7:15 PMkarelpeeters
05/24/2018, 7:15 PMwarriorprincess
05/24/2018, 7:15 PMkarelpeeters
05/24/2018, 7:16 PMkarelpeeters
05/24/2018, 7:16 PMwarriorprincess
05/24/2018, 7:17 PMwarriorprincess
05/24/2018, 7:17 PMkarelpeeters
05/24/2018, 7:18 PM?.let
abuse I've seen is crazy.karelpeeters
05/24/2018, 7:18 PMwarriorprincess
05/24/2018, 7:18 PMkarelpeeters
05/24/2018, 7:18 PMwarriorprincess
05/24/2018, 7:18 PMwarriorprincess
05/24/2018, 7:19 PMkarelpeeters
05/24/2018, 7:19 PMmaxBy
functions.warriorprincess
05/24/2018, 7:19 PMkarelpeeters
05/24/2018, 7:20 PMO(n^2)
I think.warriorprincess
05/24/2018, 7:20 PMkarelpeeters
05/24/2018, 7:20 PMwarriorprincess
05/24/2018, 7:21 PMwarriorprincess
05/24/2018, 7:21 PMwarriorprincess
05/24/2018, 7:22 PMkarelpeeters
05/24/2018, 7:22 PMkarelpeeters
05/24/2018, 7:22 PMwarriorprincess
05/24/2018, 7:22 PMwarriorprincess
05/24/2018, 7:25 PMfun longestValidParentheses(s: String): Int {
fun isValidParenthese(str: String): Boolean {
return 0 == str.fold(0, {
acc: Int, i: Char ->
var ret: Int = acc
if (i == '(') ret += 1 else ret -= 1;
if (acc < 0) ret = 999999999
ret
})
}
var longest: Int = 0;
(0..s.length).forEach outer@{ i ->
(i..s.length).forEach inner@{ j ->
val substr = s.substring(i, j)
if (isValidParenthese(substr) && substr.length > longest) longest = substr.length
}
}
return longest
}
warriorprincess
05/24/2018, 7:25 PMkarelpeeters
05/24/2018, 7:26 PMO(n^3)
though, you need to count the substring
too.warriorprincess
05/24/2018, 7:27 PMwarriorprincess
05/24/2018, 7:28 PM