文章

119

粉丝

68

获赞

90

访问

19.9k

头像
String to int 题解:希望大佬解释,为什么过不去验证,对于常规例子可以通过
P1623 上海交通大学2017年机试题
发布于2025年2月15日 11:59
阅读数 80

#include <bits/stdc++.h>

using namespace std;

int main() {
    string s;
    while (getline(cin, s)) {
        int i = 0, flag = 0;

        for (; i < s.size(); i++) {
            if (isdigit(s[i])) break;
        }
        if (i == s.size()) flag = 1;
        if (flag == 1) {
            cout << -1 << endl;
        } else {
            long long ans = 0;
            string x;
            int tag = 0, exflag = 0;
            for (; i < s.size(); i++) {
                if (!isdigit(s[i])) break;
                ans *= 10;
                ans += s[i] - '0';
                if (s[i] != '0' && tag == 0) tag = 1;
                if (tag == 1) {
                    x.push_back(s[i]);
                }
                if (ans > INT_MAX) {
                    exflag = 1;
                    break;
                }
            }
            if (exflag == 1) cout << -1 << endl;
            else cout <<...
登录查看完整内容


登录后发布评论

2 条评论
快乐小土狗
2025年2月16日 21:57

考虑不周全,第一个字符不一定是数字

赞(1)
situ-leader
2025年2月16日 19:44

空格

赞(0)