牛客练习赛67 A. 牛牛爱字符串

牛牛爱字符串

https://ac.nowcoder.com/acm/contest/6885/A

Description

牛牛得到了一个字符串(可能含有空格),他希望在这些字符串中提取出数字。
例如:a1b23c456d007890中可以提取出1, 23, 456, 7890共4个数字。

现在,他得到了一个长度高达1000的字符串,请你帮他提取出所有的数字。

Solution

注意两个细节
1:输出的时候格式是字符串,因为数字过长整型变量存不下。
2:无前导0

Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    string s;
    while(getline(cin, s)) {
            vector<string> v;
            int flag = 0;
            for(int i = 0; i < s.size(); i++) {
                    if(isdigit(s[i])) {
                        string t;
                        int lead = 0;
                        int flag = 0;
                        while(i < s.size() && isdigit(s[i])) {
                            flag = 1;
                            if(s[i] != '0') lead = 1;
                            if(!lead && s[i] == '0') {
                                i++;
                                continue;
                            }
                            else t += s[i];
                            i++;
                        }
                        if(flag && t == "") t = "0";
                        v.push_back(t);
                    }
            }
            for(int i = 0; i < v.size(); i++) {
                cout << v[i] << ' ';
            }
            cout << "\n";
    }
  return 0;
}
全部评论
看到这个A题样例 kur1su,还以为你出题来着。
点赞 回复 分享
发布于 2020-08-15 12:46

相关推荐

评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务