牛客练习赛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;
}
查看7道真题和解析