Trang chủ Tin Học Lớp 9 Từ là một chuỗi kí tự liền nhau không có...

Từ là một chuỗi kí tự liền nhau không có dấu cách. Đoạn văn bản là chuỗi gồm các từ cách nhau bởi ít nhất 1 dấu cách. Độ dài của từ là số lượng kí tự của từ. C

Câu hỏi :

Từ là một chuỗi kí tự liền nhau không có dấu cách. Đoạn văn bản là chuỗi gồm các từ cách nhau bởi ít nhất 1 dấu cách. Độ dài của từ là số lượng kí tự của từ. Cho đoạn văn bản, hãy cho biết số từ liền nhau có cùng độ dài lớn nhất. Ví dụ (trong hình). Các bạn đừng vào spam nha => bị cảnh báo đó

image

Lời giải 1 :

const fi='DOAN.INP';
      fo='DOAN.OUT';
      max=round(1e8)+8;
var s:ansistring;
    a:array[0..max] of longint;
    d:array[0..max] of longint;
    i,m,k,n:longint;
procedure nhap;
begin
        assign(input,fi);
        reset(input);
        read(s);
        close(input);
end;
procedure chuanhoa;
begin
        while (length(s)>0) and (s[1]=#32) do delete(s,1,1);
        while (length(s)>0) and (s[length(s)]=#32) do delete(s,length(s),1);
        while pos(#32#32,s) > 0 do delete(s,pos(#32#32,s),1);
end;
procedure taoa;
begin
        fillchar(a,sizeof(a),0);
        m:=0;
        s:=#32+s;
        n:=length(s);
        for i:=2 to n do
                if s[i-1]=#32 then
                        inc(m)
                else
                        if s[i]<>#32 then inc(a[m]);
end;
procedure taod;
begin
        fillchar(d,sizeof(d),0);
        k:=0;
        d[1]:=1;
        for i:=1 to m do
        begin
                if a[i]=a[i-1] then inc(d[k])
                else
                begin
                        inc(k);
                        inc(d[k]);
                end;
        end;
end;
procedure xuat;
var dmax:longint;
begin
        dmax:=0;
        for i:=0 to k do
                if d[i]>dmax then dmax:=d[i];
        assign(output,fo);
        rewrite(output);
        write(dmax);
        close(output);
end;
begin
        nhap;
        chuanhoa;
        taoa;
        taod;
        xuat;
end.

Thảo luận

-- thanks bạn ._.
-- Làm xong sao m không nói :| giờ mới thấy chưa cho hay nhất
-- t có nói mà (*゜ー゜*)

Lời giải 2 :

uses crt;
var s:string; a:array[1..1000]of longint;  i,t,n,max,j:longint;
begin
clrscr;
    write('s=');readln(s);  n:=length(s); t:=1;
     For i:=1 to n do
          If(s[i]<>' ')or(i=1)then
               a[t]:=a[t]+1 else inc(t);
    for i:=1 to t do
        begin
            j:=i;
            while a[j]=a[i] do inc(j);
            If j-i>max then max:=j-i;
        end;
    writeln(max);
readln
end.

Mình có gắng rút gọn nhất có thể rồi mong bạn vote cho m

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