[Xâu Ký Tự Cơ Bản]. Bài 20. Các từ thuận nghịch

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho xâu kí tự S gồm các từ được phân cách nhau bởi một vài dấu cách.

Hãy tách ra các từ thuận nghịch trong xâu và sắp xếp theo thứ tự từ điển tăng dần.


Đầu vào

Dòng duy nhất chứa xâu S


Giới hạn

1<=len(S)<=10000

S chứa kí tự là chữ cái, chữ số và dấu cách.


Đầu ra

In ra các từ thuận nghịch sau khi sắp xếp


Ví dụ :

Input 01
IAzbbzAI   ocoS iIA ccAAAAAAcc izzbb   aoI iIiAWWAiIi
Output 01
IAzbbzAI ccAAAAAAcc iIiAWWAiIi

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    anhthuy_  đã bình luận lúc 26, Tháng 11, 2025, 1:18

    include <bits/stdc++.h>

    #define iosf ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
    using namespace std;
    template &lt;typename T> using v = vector<T>;
    
    bool palindrome(string s){
        int ptr1 = 0;
        int ptr2 = (int)s.size()-1;
        while(ptr1 <= ptr2){
            if (s[ptr1] != s[ptr2]) {
                return false;
            }
            ptr1++;
            ptr2--;
        }
        return true;
    }
    
    int main(){
        iosf 
    
        string word;
        multiset<string> s;
    
        while(cin >> word){
            if (palindrome(word)){
                s.insert(word);
            }
        }
    
        for(string word: s){
            cout << word << " ";
        }
    
        return 0;
    }