1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> #include <string.h> struct bracket { char data[101]; int top; }; void main() { char str[101],flag[101]; int i,len; struct bracket *p, *q; while(scanf("%s",str) != EOF) { p=(struct bracket *)malloc(sizeof(struct bracket)); q=(struct bracket *)malloc(sizeof(struct bracket)); p->top = q->top = 0; len = strlen(str); for(i=0;i<len;i++) { switch(str[i]) { case '(' : p->data[p->top++] = str[i]; flag[i]=' '; break; case ')' : if(p->top>0) { flag[i]=' '; p->top-=1; }else { flag[i]='?'; } break; default : flag[i]=' '; break; } } for(i=len-1;i>=0;i--) { switch(str[i]) { case ')' : q->data[q->top++] =str[i]; break; case '(' : if(q->top>0) { q->top-=1; }else { flag[i]='$'; } break; default : break; } } for(i=0;i<len;i++) printf("%c",str[i]); printf("\n"); for(i=0;i<len;i++) printf("%c",flag[i]); printf("\n"); } }
Java :
import java.util.*; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); while(sc.hasNextLine()) { String t1=sc.nextLine(); StringBuffer sb=new StringBuffer(t1); StringBuffer t2=new StringBuffer(200); for(int i=0;i<t1.length();i++) { if(t1.charAt(i)=='(') t2.append('('); else if(t1.charAt(i)==')') { if(t2.length()>0) t2.deleteCharAt(t2.length()-1); else sb.setCharAt(i, '?'); } } t2.setLength(0); for(int i=t1.length()-1;i>=0;i--) { if(t1.charAt(i)==')') t2.append(')'); else if(t1.charAt(i)=='(') { if(t2.length()>0) t2.deleteCharAt(t2.length()-1); else sb.setCharAt(i, '$'); } } for(int i=0;i<sb.length();i++) { if(sb.charAt(i)!='?' && sb.charAt(i)!='$') sb.setCharAt(i, ' '); } System.out.print(t1); System.out.print('\n'); System.out.print(sb); System.out.print('\n'); } } }
- 1
信息
- ID
- 1268
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者