求字符串中所有整数的最小和

标题:求字符串中所有整数的最小和 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
输入字符串s,输出s中包含所有整数的最小和
说明
1. 字符串s,只包含 a-z A-Z +- ;
2. 合法的整数包括
    1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102
    2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023


#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    string s;
    while (cin >> s)
    {
        int num = 0;
        int sum = 0;
        int flag = 1;
        for (int i = 0; i < s.length(); i++)
        {
            if (s[i] >= '0' && s[i] <= '9')
            {
                if (flag == -1)
                {
                    num = num * 10 + s[i] - '0';
                }
                else
                {
                    sum = sum + s[i] - '0';
                }
            }
            else
            {
                sum = num * flag + sum;
                num = 0;
                flag = 1;
            }
            if(s[i]=='-')
            {
                flag = -1;
            }
        }
        cout << sum << endl;
    }
    return 0;
}

#include <iostream>
#include <string>

using namespace std;

int isNum(char c) {
    if (c <= '9' && c >= '0')
        return 1;
    return 0;
}

int main() {
    int ans;
    string str;
    while (getline(cin,str)) {
        ans = 0;
        for (int i=0;i<str.length();i++) {
            if (isNum(str[i]) == 1)
                ans += str[i] - '0';
            if (str[i] == '-') {
                int temp = 0;
                i++;
                while (isNum(str[i]) == 1) {
                    temp = temp*10 + str[i] - '0';
                    i++;
                }
                i--;
                ans -= temp;
            }
        }
        cout << ans << endl;
    }
    return 0;
}


全部评论

相关推荐

点赞 评论 收藏
分享
10-05 11:11
海南大学 Java
投票
理想江南137:感觉挺真诚的 感觉可以试一试
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务