CENSOR.INP | CENSOR.OUT |
whatthemomooofun moo |
whatthefun |
find
để tìm vị trí xuất hiện của xâu t
trong xâu s
. với phương thức find
sẽ trả về vị trí ký tự đầu tiên của t
xuất hiện trong s
nếu tìm thấy t, còn không thì sẽ trả về giá trị là -1
.s = 'hello'
và t = 'llo'
thì j = s.find(t)
sẽ có giá trị là j = 2
.t
trong s
, ta dùng kỹ thuật cắt xâu để cập nhật lại xâu s
như sau: s = s[:j] + s[j + len(t):]
.
def censor(s, t):
while len(t) < len(s):
j = s.find(t)
if j == -1:
break
s = s[:j] + s[j + len(t):]
return s
if __name__ == "__main__":
with open("CENSOR.INP", "r") as f:
s = f.readline().strip()
t = f.readline().strip()
with open("CENSOR.OUT", "w") as f:
f.write(censor(s, t))
replace
trong python. Phương thức replace
dùng để thay thể chuỗi con t trong s thành chuỗi rỗng: s = s.replace(t,'')
. Như vậy chúng ta chỉ cần một dòng code: while t in s and len(t)<=len(s): s = s.replace(t,'')
là đã xử lý xong bài toán.
with open("CENSOR.INP", "r") as f:
s = f.readline().strip()
t = f.readline().strip()
while t in s and len(t) <= len(s): s = s.replace(t,'')
with open("CENSOR.OUT", "w") as f:
f.write(s)
const fi='censor.inp';
fo='censor.out';
var
f:text;
t,s:ansistring;
procedure doc;
begin
assign(f,fi);
reset(f);
readln(f,s);
readln(f,t);
close(f);
end;
procedure xuli;
var i:longint;
tg,st:ansistring;
begin
st:='';
for i:=1 to length(s) do
begin
st:=st+s[i];
if length(st)>=length(t) then
begin
tg:=copy(st,length(st)-length(t)+1,length(t));
if tg=t then delete(st,length(st)-length(t)+1,length(t));
end;
end;
assign(f,fo);
rewrite(f);
writeln(f,st);
close(f);
end;
BEGIN
doc;
xuli;
END.
Tác giả: admin
Ý kiến bạn đọc