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"); } }
C++ :
#include <stdio.h> #include <string.h> char s[111]; void run() { int k=0,i,n; char o[111]; printf("%s\n",s); n=strlen(s)-1; strcpy(o,""); for(i=0;i<=n;i++) strcat(o," "); k=0; for(i=0;i<=n;i++) { if(s[i]=='(') k++; if(s[i]==')') { if(k>0) k--; else o[i]='?'; } } k=0; for(i=n;i>=0;i--) { if(s[i]==')') k++; if(s[i]=='(') { if(k>0) k--; else o[i]='$'; } } printf("%s\n",o); } int main() { gets(s); while(strlen(s)!=0) { run(); strcpy(s,""); gets(s); } return 0; }
Pascal :
var a:array[1..255]of char;i,j,k,n:integer; begin while not eof do begin n:=0;k:=0; fillchar(a,sizeof(a),#0); while not eoln do begin inc(n); read(a[n]) end; readln; for i:=1 to n do begin write(a[i]);if (a[i]<>'(')and(a[i]<>')') then a[i]:=' 'end; writeln; for i:=1 to n div 2 do for j:=1 to n do if a[j]='(' then begin k:=j; while (a[k+1]=' ')or(a[k+1]=')')do begin inc(k); if a[k]=')'then begin a[j]:=' ';a[k]:=' ';break end end end; for i:=1 to n do case a[i]of '(':write('$'); ')':write('?'); ' ':write(' ') end; writeln end end.
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
- 1820
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者