1036 扩号匹配2
-
描述: PIPI给你一个合法的括号序列,希望跟你按左括号下标递增顺序给出每对括号在序列中的下标。(下标从1开始)
-
输入:多组数据,请处理到EOF。对于每组数据,第一行包括一个只包含’(’,’)'的字符串,保证输入的括号匹配序列合法,长度不超过100000
-
输出:按左括号下标递增顺序给出每对括号在序列中的下标
-
输入示例
(())()()
-
输出示例
1 4 2 3 5 6 7 8
-
代码块
#include <bits/stdc++.h> using namespace std; void match(string s){ stack<int> st; int n = s.size(); vector<int> a(n);//存储下标 for(int i=0; i<s.size(); i++){ if(s[i] == '(') st.push(i); if(s[i] == ')'){ a[st.top()] = i; st.pop(); } } for(int i=0; i<n; i++) if(a[i] != 0) printf("%d %d\n", i+1, a[i]+1); } int main(){ string s; while(cin >> s){ match(s); } system("pause"); return 0; }