Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C] Loại bỏ ký tự trùng cách 1 ký tự — lọc nhiễu tín hiệu

    Cho chuỗi s. Hãy duyệt từ trái sang phải và xoá mỗi ký tự s[i] (với i >= 2) nếu nó trùng với s[i-2] (tức cách nó đúng 1 ký tự). Việc xoá được thực hiện tuần tự trên chuỗi gốc (KHÔNG xoá đệ quy nhiều lần): với mỗi vị trí i từ 2 đến n-1, nếu s[i]==s[i-2] thì đánh dấu xoá, ngược lại giữ lại. Cuối cùng in chuỗi còn lại.

    Ví dụ s = "abacad": i=2 s[2]='a'==s[0]='a' xoá; i=3 s[3]='c'!=s[1]='b' giữ; i=4 s[4]='a'==s[2]='a' xoá; i=5 s[5]='d'!=s[3]='c' giữ. Kết quả: "abcd".

    • Định dạng đầu vào:

      Một dòng chuỗi s đọc bằng fgets.

    • Ràng buộc đầu vào:

      1 <= |s| <= 1000. So sánh dựa trên CHỈ SỐ GỐC của s, không xoá đệ quy.

    • Định dạng đầu ra:

      Chuỗi sau khi xoá.

    Ví dụ:

    Đầu vào:

    abacad
    

    Đầu ra:

    abcd

    Giải thích:

    i=2 'a'==s[0]'a' xoá; i=3 'c'!='b' giữ; i=4 'a'==s[2]'a' xoá; i=5 'd'!='c' giữ. Còn lại 'abcd'.

    Đang tải editor...