Trang chủ Tin Học Lớp 9 Cho xâu S có độ dài không quá 500 kí...

Cho xâu S có độ dài không quá 500 kí tự bao gồm các ký tự trong bảng mã ASCII. Một xâu con của xâu S là một dãy liên tiếp các ký tự trong xâu. Yêu c

Câu hỏi :

Cho xâu S có độ dài không quá 500 kí tự bao gồm các ký tự trong bảng mã ASCII. Một xâu con của xâu S là một dãy liên tiếp các ký tự trong xâu. Yêu cầu: Tìm xâu con có độ dài lớn nhất của xâu S mà trong xâu chỉ bao gồm các ký tự số. Dữ lịu vào: Được cho ở tệp văn bản XAUCON.INP có cấu trúc như sau: - D̀ng 1: Ghi xâu S Dữ lịu ra: Ghi ra tệp văn bản XAUCON.OUT có cấu trúc như sau: - D̀ng 1: Ghi một số nguyên là độ dài của xâu con tìm được. V́ dụ: XAUCON.INP XAUCON.OUT XAUCON.INP XAUCON.OUT H12T345 3 Ngay 10 thang 12 2

Lời giải 1 :

var max,st:ansistring;
    i:word;
    fi,f2:text;
begin
    assign(f1,'XAUCON.INP');reset(f1);
    assign(f2,'XAUCON.OUT');rewrite(f2);
    max:='';
    readln(f1,st);
  {=======================  1.  =============================}
    for i:=1 to length(st) do
      if not(st[i] in ['0'..'9']) then st[i]:=' ';
  {=======================  2.  =============================}
    while pos('#32#32',st)<>0 do delete(st,pos(#32#32,st),1);
    if st[1]=' ' then delete(st,1,1);

  {=======================  3.  =============================}
    if st[length(st)]<>' ' then st:=st+' ';
    while pos(#32,st)<>0 do
       begin
           if copy(st,1,pos(' ',st)-1)>max then
              max:=copy(st,1,pos(' ',st)-1);
           delete(st,1,pos(' ',st));
       end;
  {=======================================================}
    writeln(f2,length(max));
    close(f1);close(f2);
end.
Ý tưởng:

1. Duyệt từ đầu đến cuối xâu: nếu nó không phải kí tự số: chuyển thành khoảng trắng

2. Chuẩn hóa xâu

3. Tách xâu - kiểm tra xâu đó có dài hơn xâu max hay không 
    Xóa phần xâu đã kiểm tra và kiểm tra tiếp

Thảo luận

-- ghi vậy chứ sợ bro lại không hiểu :')
-- :D

Lời giải 2 :

program bai_giai;
var f,g:text;
    st,s,t:ansistring;
    i:integer;
begin
    Assign(f,'XAUCON.INP');  reset(f);
    Assign(g,'XAUCON.OUT');  rewrite(g);
    readln(f,st);
    s:=''; t:='';
    for i:=1 to length(st) do
        if st[i] in ['0'..'9'] then t:=t+st[i]
        else
            begin
                if length(t)>length(s) then s:=t;
                t:='';
            end;
    if length(t)>length(s) then s:=t;
    write(g,length(s));
    close(f); close(g);
end.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, sắp phải bước vào một kì thi căng thẳng và sắp chia tay bạn bè, thầy cô và cả kì vọng của phụ huynh ngày càng lớn mang tên "Lên cấp 3". Thật là áp lực nhưng các em hãy cứ tự tin vào bản thân là sẻ vượt qua nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK