hihocoder-Weekly228-Parentheses Matching
Posted zhang-yd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hihocoder-Weekly228-Parentheses Matching相关的知识,希望对你有一定的参考价值。
hihocoder-Weekly228-Parentheses Matching
题目1 : Parentheses Matching
描述
Given a string of balanced parentheses output all the matching pairs.
输入
A string consisting of only parentheses ‘(‘ and ‘)‘. The parentheses are balanced and the length of the string is no more than 100000.
输出
For each pair of matched parentheses output their positions in the string.
- 样例输入
-
(())()()
- 样例输出
-
1 4 2 3 5 6 7 8
题解:
需要注意的是: 如果在循环中使用 strlen(ch) 来判断长度,会导致TLE,可能是有些编译器对这方面的优化不够。
更多的是: strlen(ch) 放在循环中也是一个不好的习惯,也是不安全的。
#include <cstdio> #include <cstdlib> #include <cstring> const int MAXN = 100000 + 10; int main(){ char ch[MAXN]; int top = 0; int stk[MAXN]; int map[MAXN]; scanf("%s", ch); int len = strlen(ch); for(int i=0; i<len; ++i) { if(ch[i] == ‘(‘) { stk[top++] = i; } else if(ch[i] == ‘)‘) { --top; map[stk[top]] = i; } } for(int i=0; i<len; ++i) { if(ch[i] == ‘(‘) { printf("%d %d ", i + 1, map[i] + 1); } } return 0; }
以上是关于hihocoder-Weekly228-Parentheses Matching的主要内容,如果未能解决你的问题,请参考以下文章
hihocoder-Weekly224-Split Array
hihocoder-Week174-Dice Possibility
hihocoder-Week175-Robots Crossing River
hihocoder-Weekly223-Interval Coverage