小v所在的公司即将举行年会,年会方案设计过程中必不可少的一项就是抽奖活动。小v在本次活动中被委以重任,负责抽奖活动的策划;为了让中奖的礼物更加精美且富有神秘感,打算采用礼品盒来包装奖品,此时小v发挥了自己的创意想捉弄一下获奖的同事,便采取了多重包装来包装奖品。
现给出一个字符串,并假定用一对圆括号( )表示一个礼品盒,0表示奖品,你能据此帮获奖者算出最少要拆多少个礼品盒才能拿到奖品吗?
一行字符串,仅有'('、')'、'0' 组成,其中一对'(' ')'表示一个礼品盒,‘0’表示奖品;输入的字符串一定是有效的,即'(' ')'一定是成对出现的。
输出结果为一个数字,表示小v要拆的最少礼品盒数量
(()(()((()(0)))))
5
(((0)))
3
private static int solution(String str) {
// TODO Write your code here
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i)!='0'){
if (str.charAt(i)=='('){
count++;
}
if (str.charAt(i)==')'){
count--;
}
}else
break;
}
return count;
} private static int solution(String str) {
// TODO Write your code here
int count = 0;
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) == '(')
count ++;
if(str.charAt(i) == ')')
count --;
if(str.charAt(i) == '0')
break;
}
return count;
} import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputStr = br.readLine();
int output = solution(inputStr );
System.out.println(output);
}
// ------------------------------------------------------------------------
private static int solution(String str) {
StringBuffer s = new StringBuffer(str);
while(s.indexOf("()") >= 0){ // 去掉所有连着成对的(),空礼盒不需要拆
int index = s.indexOf("()");
s.delete(index,index+2);
}
return s.length()-s.indexOf("0")-1; // 剩下的数0的左边或者右边的单括号数就行
}
// ------------------------------------------------------------------------
} #include<stdio.h>
int main()
{
char c;
int b=0,d=0;
while((c=getchar())!='0')
{
if(c=='(')
{
b++;
}
if(c==')')
{
d++;
}
}
printf("%d",b-d);
} 阅读理解0分
在找到 "0" 之前,凡遇到成对的"()"表示一个完整的 空 盒子,可以丢掉,也可以拆开。如果选择丢掉,那么output是最小的拆盒子数。
sum++ 是说选择拆开一层包装,sum-- 说明 试着拆开后发现 这是成对的"()" 空盒子,不如不拆,可以丢掉,不计入最小的拆盒子数中
private static int solution(String str) {
int sum = 0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)=='0'){
break;
}else if(str.charAt(i)=='('){
sum++;//拆开一层包装
}else{
sum--;//"()"情况的盒子可以不用拆开,直接丢掉即可
}
}
return sum;
}
import java.io.*;
/**
* Welcome to vivo !
*/
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputStr = br.readLine();
int output = solution(inputStr );
System.out.println(output);
}
private static int solution(String str) {
// TODO Write your code here
char[] arr = str.toCharArray();
int count = 0;
for(int i = 0; i < arr.length; i++){
if(arr[i] == '('){
count++;
}else if(arr[i] == ')'){
count--;
}else if(arr[i] == '0'){
return count;
}
}
return 0;
}
}