牛客练习赛67-A、牛牛爱字符串

题目链接

题意

给定一个字符串,提取其中的数字并以空格分隔输出,字符串长度 0 ≤ l e n ≤ 1000 0 \le len \le 1000 0len1000

思路

遍历一遍字符串,遇见连续数字存到一个vector里,最后处理前导零即可。
AC代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

string f(string s) {
    int f = 0;
    string t = "";
    for (int i = 0; i < s.size(); i++) {
        if (s[i] == '0' && f == 0) continue;
        else {
            f = 1;
            t += s[i];
        }
    }
    if(t.size()==0) t="0";
    return t;
}

int main() {
    string str;
    vector ans;
    while (getline(cin, str)) {
        ans.clear();
        int cnt = 0;
        for (int i = 0; i < str.size(); i++) {
            if (str[i] <= '9' && str[i] >= '0') {
                string tmp = "";
                while (str[i] <= '9' && str[i] >= '0') {
                    tmp += str[i];
                    i++;
                }
                ans.push_back(tmp);
            }
        }
        for (int i = 0; i < ans.size(); i++) {
            cout << f(ans[i]);
            if (i < ans.size() - 1) cout << ' ';
        }
        cout << "\n";
    }
}

你可能感兴趣的:(牛客)