Hướng dẫn giải của Word Counting


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Lưu ý: Các code mẫu dưới đây chỉ mang tính tham khảo và có thể không AC được bài tập này

Code mẫu của flashmt

var c,lc:char;
    t,i,cur,pre,j:byte;
    let:set of char;
    max,dem:integer;

begin
     let:=[];
     for c:='a' to 'z' do let:=let+[c];
     readln(t);
     for i:=1 to t do
     begin
          cur:=0; max:=1; dem:=0;
          repeat
                read(c);
                while (ord(c)=32) and (ord(lc)=32) do read(c);
                if c in let then inc(cur)
                else
                begin
                     if cur=pre then inc(dem)
                     else
                     begin
                          if dem>max then max:=dem;
                          dem:=1;
                     end;
                     pre:=cur;
                     cur:=0;
                end;
                lc:=c;
          until eoln;
          if cur=pre then inc(dem);
          if dem>max then max:=dem;
          readln;
          writeln(max);
     end;
end.

Code mẫu của happyboy99x

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
    string line, s;
    int t, best, len, prlen, wrdcnt;
    ios::sync_with_stdio(false);
    cin >> t;
    getline(cin, s);
    while(t--) {
        getline(cin, line);
        best = prlen = wrdcnt = 0;
        stringstream ss(line);
        while(ss >> s) {
            len = s.size();
            if(len==prlen) wrdcnt++;
            else {
                if(wrdcnt > best) best = wrdcnt;
                wrdcnt = 1;
                prlen = len;
            }
        }
        if(wrdcnt > best) best = wrdcnt;
        cout << best << endl;
    }
    return 0;
}

Code mẫu của ladpro98

program wordcnt;
uses    math;
const   fi='';
var     t,d,temp,res,i,j,k:longint;
        s:ansistring;
        inp:text;
function   getlength:longint;
var     kq:longint;
begin
        kq:=0;
        while s[j]<>' ' do
        begin
                inc(kq);
                inc(j);
        end;
        exit(kq);

end;

begin
        assign(inp,fi);
        reset(inp);
        readln(inp,t);
        for i:=1 to t do
        begin
                res:=0;
                readln(inp,s);
                s:=s+' ';
                temp:=1;
                j:=1;
                t:=getLength;
                d:=t;
                while j<length(s) do
                begin
                while (j<length(s)) and (s[j]=' ') do inc(j);
                t:=getLength;
                if t=d then inc(temp)
                else
                begin
                        temp:=1;
                        d:=t;
                end;
                res:=max(res,temp);
                end;
                res:=max(res,temp);
                writeln(res);
        end;

end.

Code mẫu của RR

uses math;
var
  test:longint;
  s:ansistring;
  f,a:array[0..1011] of longint;
  n,i,res:longint;

begin
  readln(test);
  for test:=1 to test do
    begin
      readln(s);
      while s[1]=' ' do delete(s,1,1);
      while pos('  ',s)>0 do delete(s,pos('  ',s),1);
      while s[length(s)]=' ' do delete(s,length(s),1);
      s:=s+' ';
      n:=0;
      while pos(' ',s)>0 do
        begin
          inc(n); a[n]:=pos(' ',s)-1;
          delete(s,1,pos(' ',s));
        end;

      res:=0;
      for i:=1 to n do
        begin
          if a[i]=a[i-1] then f[i]:=f[i-1]+1
          else f[i]:=1;
          res:=max(res,f[i]);
        end;
      writeln(res);
    end;
end.

Code mẫu của hieult

import java.io.*;
//import java.util.*;

public class Main {
    public static void main(String args[]) throws IOException
    {
        InputStreamReader readin = new InputStreamReader(System.in);
        BufferedReader read = new BufferedReader(readin);
        String s;
        String [] temp;
        int n;
        s = read.readLine();
        n = Integer.parseInt(s);
        for(int ii = 1;ii<=n;ii++)
        {
            s = read.readLine();
            temp = s.split(" ");
            int t = 1, max = 1 , a=0;
            a = temp[0].trim().length();
            for(int i = 1;i<temp.length;i++)
            {
                if(temp[i].trim().length()==0) continue;
                else if(a==0)
                {
                     t = 1;
                     a =temp[i].trim().length();
                }
                else if(temp[i].trim().length()==a)
                     t++;

                else
                {
                    t = 1;
                    a =temp[i].trim().length();
                }
                if(t>max)
                    max = t;
            }
            System.out.println(max);
        }
    }
}

Code mẫu của ll931110

Program WORDCNT;
        Const
                input  = '';
                output = '';
        Var
                    s: string;
                i,t,n: integer;
                fi,fo: text;

Procedure init;
          Begin
                Readln(fi, s);
                n:= length(s);
          End;

Procedure solve;
          Var
                max,i,clen,cword,len: integer;
          Begin
                max:= 0;

                clen:= -1;
                cword:= 1;
                len:= 0;

                For i:= 1 to n do
                    If s[i] <> ' ' then inc(len) else
                        Begin
                                If len = clen then inc(cword) else
                                        Begin
                                                If max < cword then max:= cword;
                                                If len <> 0 then
                                                        Begin
                                                                clen:= len;
                                                                cword:= 1;
                                                        End;
                                        End;
                                len:= 0;
                        End;

                If len = clen then inc(cword);
                If (max < cword) and (clen <> 0) then max:= cword;
                Writeln(fo, max);
          End;

Begin
        Assign(fi, input);
                Reset(fi);

        Assign(fo, output);
                Rewrite(fo);

        Readln(fi, t);
        For i:= 1 to t do
                Begin
                        init;
                        solve;
                End;

        Close(fo);
        Close(fi);
End.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.