设为首页 加入收藏

TOP

hdu 3351
2014-11-23 20:25:25 来源: 作者: 【 】 浏览:5
Tags:hdu 3351

题意:给出一个由'{' , '}' 组成的字符串,通过改变最少括号的方向使其匹配。

思路:贪心方法:从左向右遍历,遇到左括号lef++,遇到右括号,若lef>0,lef--,否则右括号变为左括号,ans++,lef++,最后再加上多下来的左括号,即lef/2。


代码如下:

 * 3351_2.cpp 
 * 
 *  Created on: 2013年8月7日 
 *      Author: Administrator 
 */  
  
  
  
  
#include    
  
using namespace std;  
  
  
int main(){  
  
    string str;  
    int lef;  
    int ans;  
    int count = 1;  
    while( cin >> str,str[0]!= '-'  ){  
  
        lef = 0,ans =0;  
        for(int i = 0 ; i < str.length() ; ++i ){  
            if(str[i] == '{'){//如果是左括号   
                lef++;  
            }else if(lef > 0 ){//如果是右括号且左括号的数量>0   
                --lef;  
            }else{//如果是右括号且左括号的数量<=0   
                //是右括号转向成左括号   
                ans++;  
                lef++;  
            }  
        }  
  
        cout< 
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj 1459 Power Network(最大流) 下一篇hdu 1052

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)