Hướng dẫn giải của TS10 Tiền Giang 2023 - Mật khẩu wifi

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 làm lời giải.


Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.

Một biến chạy ~i~ ở xâu mật khẩu và một biến chạy ~j~ ở mảng ~f~. Với mỗi ~s_i~ là một ~*~, nếu:

  1. ~f_j >0~ thì thay ~s_i~ là chữ cái thứ ~j~ và trừ ~s_i~ bị trừ 1 đơn vị.
  2. ~f_j =0~ thì tăng biến chạy ~j~ đến khi ~f_j>0~ và quay lại bước 1.
Code tham khảo
void lds_go_goooo() {
    int j=1;
    for(int i=0;i<str.size();i++)
    {
        if(str[i]=='*')
        {
            while(a[j]==0)
                j++;
            a[j]--;
            str[i]=j+'a'-1;// trừ 1 do j chạy từ 1, khi cộng kí tự a thì phải trừ 1 mới ra kí tự a
        }
    }
    cout<<str;
}

Độ phức tạp : ~\mathcal{O}(n)~


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.