kết quả từ 1 tới 2 trên 2

Bài tập Pascal: Ký tự đặc biệt

  1. #1
    Ðến Từ
    Bến Tre
    Thành Viên Thứ: 370515
    Bài gửi
    5

    Bài tập Pascal: Ký tự đặc biệt

    Cho 2 chuỗi S và T, với chuỗi T được tạo thành bằng cách hoán vị chuỗi S sau đó thêm vào đúng 1 ký tự bất kỳ tại một vị trí bất kỳ trong chuỗi đã hoán vị. Viết chương trình tìm ký tự đã thêm vào.Input: DACBIET.INP gồm 2 dòng: dòng thứ nhất chứa chuỗi S và dòng thứ hai chứa chuỗi T. Biết rằng độ dài của từng chuỗi không quá 10^4. Output: DACBIET.OUT gồm đúng 1 ký tự duy nhất là ký tự đặc biệt. Ví dụ: S = 'abcd', T = 'abdce', thì phải in ra ký tự 'e'.
    Quick reply to this message Trả lời       


  2. #2
    Ðến Từ
    TP. Hồ Chí Minh
    Thành Viên Thứ: 56897
    Giới tính: Nam
    Bài gửi
    881

    Reply: Bài tập Pascal: Ký tự đặc biệt

    Bạn dùng phép 'xor' toàn bộ ký tự của S và T. Kết quả cuối cùng chính là ký tự cần tìm. Code đại khái là:
    Mã:
    t := 0;
    for i := 1 to length(S) do
        t := t xor ord(S[i]);
    for i := 1 to length(T) do
        t := t xor ord(T[i]);
    writeln(chr(t));

    Bạn không cần lưu chuỗi S và T. Đọc file vào từng ký tự; đọc tới đâu, 'xor' tới đó. Đọc xong file là in ra kết quả luôn. Ví dụ đại khái như:
    Mã:
    while not EOF do
        begin
            read(c);
            t := t xor ord(c);
        end;
    Độ phức tạp là O(|S| + |T|).
    LCD: 13.3" 1920x1080 IPS
    CPU: Intel i7 - 4700MQ (2.4 GHz - 3.4 GHz)
    GPU: Nvidia GTX 765m with GDDR5 2GB
    RAM: 2x8GB G.Skill 2133
    HDD: Samsung SSD 850 Pro 512 GB
    2 kg.

  3. Đã cảm ơn tengiday: