Mã Hóa Xâu [Archive] - Diễn Đàn Tin Học

Diễn Đàn Tin Học > Lập trình > Các ngôn ngữ lập trình > Pascal/Delphi/Kylix > Mã hóa xâu PDA

View Full Version : Mã hóa xâu

lehang_gb122-07-2009, 22:16Viết chương trình nhập vào xâu và mã hoá: VD: Mahoa.Inp Ha Noi 8610510111632789109 Mahoa.Out 72973278111105 Viet Nam quangtq22-07-2009, 22:38Sax. Phải biết là mã hóa như thế nào chứ. Đọc cái vd không hiểu. nhat_truong23-07-2009, 00:16Có phải đây là mã hóa theo bộ mã ASCII? Mà test sai kìa, HaNoi và VietNam phải có dấu cách ở giữa: Ha Noi, Viet Nam thì mới mã hóa thế kia được. Mã hóa xuôi thì dễ thôi, nhưng ngược lại thì hơi khó, tui chưa nghĩ ra bld23-07-2009, 08:05quay lui ...................................... hang_vt23-07-2009, 13:03vẫn k hỉu đề , ai giảng dùm ik :( quangtq23-07-2009, 15:42vẫn k hỉu đề , ai giảng dùm ik :( Em cũng chả hiểu. Về cái đoạn mã hóa này mình ngu. bld23-07-2009, 16:49bài này mã hóa theo ASCII xâu ABCD mã hóa thành 65666768 , ... ngược lại thì buộc phải quay lui quangtq23-07-2009, 16:53Tưởng Ascii các chữ đều chỉ >=99 và <=10. Cứ 2 số 1 ta giải ra. hang_vt23-07-2009, 21:28hình như Q nhầm "A" -> "Z" : 65 -> 90 "a" -> "z" : 97 -> 122 quangtq23-07-2009, 22:32Thế à chị? Thanks. Em quên bảng ascii. Thế thì phải xét 3 cái. Nếu không thấy ra chữ thì ta xét 2 cái trước. Cứ như vậy bld24-07-2009, 08:33làm thử bằng tay với test của đề thử xem quang :) nghe mù mờ quá DO DONG HIEN24-07-2009, 09:24phải nói rõ dùng thuật toán nào để mã hóa thì mới viết được ct chứ.Bó tay. hang_vt24-07-2009, 09:37const fi='mahoa.inp'; fo='mahoa.out'; so:set of char=['0'..'9']; chu:set of char=['a'..'b','A'..'Z',' ']; var f,g:text; s:string; j:byte; function kt(s:string):boolean; var i:byte; begin kt:=false; for i:=1 to length(s) do if not (s[i] in so) then exit; kt:=true; end; function mahoachu(s:string):string; var s1,s2:string; i:byte; begin s1:=''; for i:=1 to length(s) do begin str(ord(s[i]),s2); s1:=s1+s2; end; mahoachu:=s1; end; function tach(j,k:byte):char; var s1:string; mso,err:byte; begin s1:=''; repeat dec(k); s1:=s1+s[j]; inc(j); until k=0; val(s1,mso,err); if err=0 then tach:=chr(mso); end; function mahoaso(s:string):string; var s1:string; begin s1:=''; j:=0; repeat inc(j); if (tach(j,2) in chu) then begin s1:=s1+tach(j,2); inc(j); end else begin s1:=s1+tach(j,3); inc(j,2); end; until j>length(s); mahoaso:=s1; end; procedure inp; begin assign(f,fi);reset(f); assign(g,fo);rewrite(g); while not eof(f) do begin readln(f,s); if not kt(s) then writeln(g,mahoachu(s)) else writeln(g,mahoaso(s)); end; close(f);close(g); end; begin inp; end. [=========> Bổ sung bài viết <=========] cùng ý tưởng vs Q :) quangtq24-07-2009, 11:00Ahaha. Thanks pà chị. Có người cùng ý tưởng. Vui :D Mình thấy có gì đâu nhỉ. Kể cả là số cũng đến 2 chữ số trong ascii thôi. Xét 3 cái mà không ra chữ, số hay space thì xét 2 cái. Mình ko thấy sai ở đâu cả bld24-07-2009, 11:26bạn cho ví dụ làm = tay đi ^^, nói vẫn chưa hiểu quangtq24-07-2009, 15:39Ví dụ efgh ABCD1234 Thì mã hóa ra là 101102103104326566676849505152 Xét 3 cái đầu là 101 -> e Cứ thế xét đến cái sau 104 là 326 -> Ko ra chữ, số hay space -> xét 32 Thấy ra space Xét tiếp 656 -> ko ra -> 65 -> A Cứ thế bld25-07-2009, 20:55ra vậy ^^, mình nghĩ là quay lui nhưng làm như vậy sẽ rất dở ;p thế này 1111 có thể tách thành 4 số 1 , 2 số 11 hoặc 1 số 111 , 1 số 1 co nhiều cách tách nhỉ ^^ quangtq25-07-2009, 21:11Mình gà nên luôn tìm cách đơn giản, không cao siêu. Thứ tự ưu tiên của mình là: Ko có gì -> Đệ quy -> Đồ thị -> QHĐ :D Cái gì kém nhất để ở cuối. Nhưng tất nhiên những bài thấy có khả năng QHĐ được thì làm luôn bld25-07-2009, 21:13về Đồ thị quang biết rất nhiều , đã đọc đến đồ thị hai phía , phần công rồi à ? nhanh quá ! mình sau khi thi xong THT là mình có thể bị cho give up môn programming luôn ;p, vì học toán mà ^^ quangtq25-07-2009, 22:24Uhm. Hôm qua mấy cô giáo xuống động viên đi thi. Bảo là năm lớp 9 phải học cật lực vì giải gì cũng đổ lên đầu mình. Thiệt là mệt quá. Bình thường thui. Mình chỉ hiểu nhất là BFS, DFS, loang, Tìm đường (trừ Tô-pô), Prim và Hungary. bld28-07-2009, 15:38topo cũng vậy thôi, làm theo kiểu ford bellman , nhưng đánh dấu lại thì số đỉnh phải xét đến ít hơn nhiều , vì chỉ có đỉnh nhỏ đi đến đỉnh lớn. Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.

Từ khóa » Ct Mã Hoá