原题是这样的:
给定字符串序列 ()()??(?
判断 这里面包含几个完美闭合的()。?可以代表)或者(。
e.g. 上述序列的完美闭合() 字串是:
()
()
??
(?
()()
()??
??(?
()()??
()??(?
()()??(?
答案是10, 因为有十种可以完美闭合的字串。
注: (??) 可以表示为 ()()和(()) 都是完美闭合的括号。但是计数的时候算一次,因为要找多少组数量,而不是多少种组合。
对于这道题,我第一思路是,用一个char的数组,通过闭合消解的方式(把可以闭合的答案用‘0’来代替),最后判断char数组中是否全部为0,这样解决的算法非常难以平衡一些特殊情况