zoukankan      html  css  js  c++  java
  • 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.

    输出

    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; 
    } 
    

      

  • 相关阅读:
    TensorFlow学习笔记之四——源码分析之基本操作
    TensorFlow学习笔记之三——适合入门的一些资源
    AW286 选课(背包类树形DP)
    AW303 运输小猫
    AW302 任务安排3
    AW301 任务安排2 (斜率优化DP)
    AW300 任务安排1
    AW311 月之谜
    AW310 启示录
    AW292 炮兵阵地
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/9974870.html
Copyright © 2011-2022 走看看