CHUANHOA - Chuẩn hóa xâu

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

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Cho xâu ký tự ~s~ chỉ gồm các ký tự chữ cái latinh và dấu cách, hãy chuẩn hóa xâu ~s~ (tức là xóa hết các dấu cách thừa trong xâu: các dấu cách ở hai đầu, hai từ liên tiếp trong xâu chỉ cách nhau duy nhất một dấu cách).

Input

  • Dòng đầu chứa số nguyên dương ~T~ là số chuỗi;
  • ~T~ dòng tiếp theo, mỗi dòng chứa một chuỗi có độ dài không quá ~1000~ ký tự.

Giới hạn:

  • ~1 ≤ T ≤ 100~.

Output

  • Gồm ~T~ dòng, mỗi dòng là một xâu đã chuẩn hóa.

Sample

Input #1
2
abc   xyz ab
  abc   def   ghi
Output #1
abc xyz ab
abc def ghi

Problem source: Chuyên Sơn La Online Judge


Bình luận

Please read the guidelines before commenting.



  • -1
    Duong_Thanh_Khiem_L8  đã bình luận lúc 24, Tháng 1, 2026, 13:26

    FULL AC:

    #include <bits/stdc++.h>
    using namespace std;
    
    int T;
    string s;
    
    int main() {
        cin >> T;
        cin.ignore();
        while (T--) {
            getline(cin, s);
    
            for (int i = 0; i < s.length(); i++) {
                // nếu là chữ thì in luôn
                if (s[i] != ' ') {
                    cout << s[i];
                }
                else {
                    if (i > 0 && s[i-1] != ' ' && i < s.length() - 1) {
                        cout << ' ';
                    }
                }
            }
            cout << endl;
        }
        return 0;
    }
    

  • 0
    congtyluuthaibao1978  đã bình luận lúc 26, Tháng 11, 2025, 14:18

    //code này ngắn hơn nè

    include <bits/stdc++.h>

    using namespace std;

    int main() { int t; cin >> t; cin.ignore(); // loại bỏ ký tự xuống dòng sau số lượng test while(t--) { string s; getline(cin, s); // đọc cả dòng stringstream ss(s); // tách từ theo khoảng trắng string word; bool first = true; while(ss >> word) { // đọc từng từ if(!first) cout << " "; // thêm khoảng trắng giữa các từ cout << word; first = false; } cout << endl; } }


  • -2
    punpun  đã bình luận lúc 22, Tháng 2, 2024, 14:41

    test 2 là j v ạ


  • -2
    anh122221  đã bình luận lúc 9, Tháng 2, 2024, 7:42 sửa 2

    AC

    int T; cin >> T; cin.ignore(); while(T--) { vector<char> vc; string s; getline(cin, s); for(auto x : s) { if(x != ' ') vc.pushback(x); else vc.pushback('@'); } while(!vc.empty() && vc[0] == '@') { vc.erase(vc.begin()); } while(!vc.empty() && vc[vc.size() - 1] == '@') vc.pop_back(); if(vc[0] != '@') cout << vc[0]; for(int i = 1; i < vc.size(); ++i) { if(vc[i] != '@' and vc[i - 1] == '@') cout << " " << vc[i]; else if(vc[i] != '@') cout << vc[i]; } cout << endl; }