POJ 1951(空串特判)

2021-06-09 13:16:37 字數 1502 閱讀 9192

這題的教訓是 要特判空串

program p1951;

var s:string;

len,i,j:longint;

b:array[0..10000] of boolean;

function isdight(x:longint):boolean;

begin

if (x>=65) and (x<=90) then exit(false);

if (x>=97) and (x<=122) then exit(false);

exit(true);

end;

begin

readln(s);

fillchar(b,sizeof(b),false);

b[ord('a')]:=true;

b[ord('e')]:=true;

b[ord('i')]:=true;

b[ord('o')]:=true;

b[ord('u')]:=true;

b[ord('a')]:=true;

b[ord('e')]:=true;

b[ord('i')]:=true;

b[ord('o')]:=true;

b[ord('u')]:=true;

i:=1;

while i<=length(s) do

begin

if b[ord(s[i])] and not(isdight(ord(s[i]))) then delete(s,i,1)

else

begin

b[ord(s[i])]:=true;

inc(i);

end;

end;

while (s[1]=' ') and (length(s)>=1) do delete(s,1,1);

while (s[length(s)]=' ') and (length(s)>=1) do delete(s,length(s),1);

i:=pos(' ',s);

while i<>0 do

begin

delete(s,i,1);

i:=pos(' ',s);

end;

i:=pos(' .',s);

while i<>0 do

begin

delete(s,i,1);

i:=pos(' .',s);

end;

i:=pos(' ,',s);

while i<>0 do

begin

delete(s,i,1);

i:=pos(' ,',s);

end;

i:=pos(' ?',s);

while i<>0 do

begin

delete(s,i,1);

i:=pos(' ?',s);

end;

writeln(s);

end.

博弈論 POJ 2311 特詳細

題意是一張紙 n m 每人切一刀 1 1 的贏 切了不扔掉 預設2 2 2 3 3 2 都已經失敗了 1 n 這裡沒進行初始化.題目裡沒給 裡就沒達到 嚴格的說其實按說都應該拓展成 的 由異或知,如果切完之後是兩個必敗的狀態 0和0 那麼就是當前狀態可以達到0 mex一下就不會拿到0,所以當前應該是...

poj2488 特坑的一題

首先不能用佇列存輸出,會超時 第二,最坑的地方,方向陣列一定先排列好。因為輸出要按字典序排序,所以方向陣列從左往右排列好,後邊就不用處理這個問題。這是最大坑點,坑了我乙個小時,看了別人 才找出這個bug!include include includeusing namespace std const...

poj1797 迪傑斯特拉演算法

1.迪傑斯特拉演算法的變形。2.找一條路的最小承受的重量做最大承受重量,這樣最後乙個點就是能承受的最大重量中的最小的重量。關鍵 if vis j dis j min map v j dis v include include include include using namespace std d...