Thứ Hai, 15 tháng 7, 2019

Từ dài nhất WORD

Hương có một xâu chứa các kí tự alphabe ‘a’…’z’ và các kí tự trống, cô ấy muốn tìm trong xâu các từ dài nhất có kí tự bắt đầu trùng với một kí tự bất kỳ nào đó trong xâu.  Một từ theo Hương là một xâu chứa các kí tự liên tiếp không có kí tự trống là xâu con của xâu đã cho. Ví dụ, Hương có xâu ‘ toi    lo   lang   cho viêc hoc       tap qua’. Kí tự bắt đầu mà Hương muốn tìm là ‘t’, như vậy từ phải tìm là ‘toi’  , ‘tap’
Yêu cầu: Tìm các từ dài nhất theo yêu cầu của Hương
Dữ liệu vào: có cấu trúc như sau:
·Dòng 1: Chứa một xâu chứa các kí tự thuộc ‘a’…’z’ và các kí tự trống. Độ dài của xâu không quá 10000 ký tự
·Dòng 2: Chứa một kí tự bất kỳ thuộc ‘a’…’z’
Dữ liệu ra: Mỗi dòng ghi một tìm được
Ví dụ:
Input   

toi   lo  lang cho viec hoc    tap qua di thoi
t   
Output
toi
tap

4 nhận xét:

  1. Uses crt;
    Var s:string;
    x:char;
    f:array[1..500] of string;
    i,j,o,max:longint;
    Begin
    readln(s);
    o:=1;
    s:=' '+s+' ';
    readln(x);
    For i:=2 to length(s) do
    Begin
    If (s[i]=x)and(s[i-1]=' ') then
    Begin
    For j:=i to length(s) do
    If s[j]=' ' then break;
    f[o]:=copy(s,i,j-i);
    o:=o+1;
    end;
    end;
    For i:=1 to o-1 do
    if length(f[i])>max then max:=length(f[i]);
    For i:=1 to o-1 do
    If length(f[i])=max then Writeln(f[i]);
    readln;
    end.

    Trả lờiXóa
  2. program p;
    uses crt;
    var a,b:array[1..100] of string;
    d,i,max:integer;
    s,k,st:string;
    begin
    clrscr;
    d:=0; max:=0;
    readln(s); readln(k);
    s:=s+' ';
    while length(s)<>0 do
    begin
    st:=copy(s,1,pos(' ',s));
    if st[1]=k then
    begin
    d:=d+1;
    a[d]:=st;
    end;
    delete(s,1,pos(' ',s));
    end;
    for i:=1 to d do if length(a[i])> max then max:=length(a[i]);
    if length(a[i])=max then write(a[i]);
    readln
    end.

    Trả lờiXóa
  3. program n;
    uses crt;
    var s,s1,k:string;
    vt,i:integer;
    begin
    clrscr;
    readln(s); readln(k);
    s:=s+' ';
    for i:=1 to length(s) do
    begin
    if pos(' ',s)<>0 then
    begin
    vt:=pos(' ',s);
    s1:=copy(s,1,vt-1);
    if s1[1]=k then writeln(s1);
    delete(s,1,vt);
    end;
    end;
    readln;
    end.

    Trả lờiXóa

Dùng nick gmail để bình luận. Nếu lần đầu tiên bạn làm điều này thì hệ thống sẽ chuyển bạn sang trang blogger và hỏi bạn chọn tên hiển thị là gì. Bạn hãy nhập tên hiển thị rồi ok là được. Những lần bình luận sau hệ thống sẽ không hỏi nữa. Cảm ơn!

Bài được xem nhiều nhất