Loading Now

[STL_C++Stack] reverseString

STLC++Stack

Đề bài

Cho một string, nhiệm vụ của bạn là viết hàm đảo ngược string này bằng std::stack.

Ví dụ:

  • Với s = "codelearn" thì reverseString(s) = "nraeledoc".

  • Với s = "abcd" thì reverseString(s) = "dcba".

Giới thiệu stack.

Stack là một loại container adaptor, được thiết kế để hoạt động theo kiểu LIFO (Last – in first – out) (vào sau ra trước), tức là một kiểu danh sách mà việc bổ sung và loại bỏ một phần tử được thực hiển ở cuối danh sách. Vị trí cuối cùng của stack gọi là đỉnh (top) của ngăn xếp.

Kết quả hình ảnh cho stack

Stack giống như việc giáo viên kiểm tra vở bài tập của học sinh vậy, ai nộp sau cùng thì vở bài tập của người đó sẽ được giáo viên kiểm tra đầu tiên, đương nhiên người nộp vợ đầu tiên sẽ được kiểm tra cuối cùng.

Khai báo:

#include<stack>

Stack có các hàm sau:

  • size : trả về kích thước hiện tại của stack. ĐPT O(1).
  • empty : true stack nếu rỗng, và ngược lại. ĐPT O(1).
  • push : đẩy phần tử vào stack. ĐPT O(1).
  • pop : loại bỏ phẩn tử ở đỉnh của stack. ĐPT O(1).
  • top : truy cập tới phần tử ở đỉnh stack. ĐPT O(1).

 

Hướng dẫn.

Code mẫu:

string reverseString(string s)
{
    string res;
    stack<char> st;
    for (int i = 0; i < s.length(); i++){
        st.push(s[i]);
    }
    while(st.empty() == false){
        res = res + st.top();
        st.pop();
    }
    return res;
}

Post Comment

Contact