Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

其实楼下很多数据根本没有必要,实际数据不会有左右括号不等或者末尾多加号减号等等

Posted by lydliyudong at 2011-03-21 17:14:52 on Problem 1690
RT
只需要判断(前不是-就去掉,(A)这种形式也去掉,就可以AC了。

参考代码:供神牛BS:
var
 f:array[0..255]of integer;
 s,str:string;
 ch:char;
 p,i,j,t:longint;
begin
 readln(t);
 for i:=1 to t do
  begin
   readln(str);
   s:='+';
   for j:=1 to length(str) do
    if str[j]<>' ' then s:=s+str[j];
   fillchar(f,sizeof(f),0);
   p:=0;
   for j:=2 to length(s) do
    begin
     if s[j]='(' then
      begin
       inc(p);
       if (s[j-1]='+')or(s[j-1]='(') then f[p]:=j;
      end;
     if s[j]=')' then
      begin
       if f[p]<>0 then begin s[f[p]]:='~'; s[j]:='~'; end;
       f[p]:=0;
       dec(p);
      end;
    end;
   str:='';
   for j:=2 to length(s) do
    if s[j]<>'~' then str:=str+s[j];
   s:=str;
   for j:=2 to length(s) do
    if (s[j-1]='(')and(s[j+1]=')')and(s[j] in ['A'..'Z']) then
     begin
      s[j-1]:='~';
      s[j+1]:='~';
     end;
   for j:=1 to length(s) do
    if s[j]<>'~' then write(s[j]);
   writeln;
  end;
end.

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator