Hướng dẫn giải của Số nhỏ nhất trong xâu

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.

Tác giả: BJMinhNhut

Đây là bài mô phỏng, có rất nhiều cách giải bài này. Một trong những cách giải là bạn cần duyệt qua chuỗi ~S~, tìm những đoạn có kí tự là số liên tiếp, sao đó chuyển về kiểu số nguyên rồi cập nhật vào đáp án nếu số đó nhỏ hơn đáp án đang có.

Code tham khảo

// Created by BJMinhNhut
#include <bits/stdc++.h>
using namespace std;

/***End of Template***/
string s;

void Input() {
    cin >> s;
}

void Solve() {
    int best = 1e9;
    int cur = 0;
    for(int i = 0; i < (int)s.size(); ++i) if (isdigit(s[i])) {
        cur = cur*10 + s[i]-'0';
        if (i == (int)s.size()-1 || !isdigit(s[i+1])) {
            best = min(best, cur);
            cur = 0;
        }
    }
    cout << best;
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    Input(), Solve();
    return 0;
}

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.