hihocoder-Weekly228-Parentheses Matching

hihocoder-Weekly228-Parentheses Matching安全

 

題目1 : Parentheses Matching

時間限制:10000ms
單點時限:1000ms
內存限制:256MB

描述

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.spa

輸出

For each pair of matched parentheses output their positions in the string.code

樣例輸入
(())()()
樣例輸出
1 4  
2 3  
5 6  
7 8

 

 

題解:blog

  須要注意的是: 若是在循環中使用 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\n", i + 1, map[i] + 1);
      }
    } 
    return 0; 
} 
相關文章
相關標籤/搜索