zoukankan      html  css  js  c++  java
  • [算法]字符串中数字子串的求和

    题目:

    给定一个字符串str,求其中全部数字串所代表的数字之和。

    要求:

    1.忽略小数点

    2.考虑‘-’,如果有连续奇数个,则为负,如果有连续偶数个,就为正数。

    举例:

    str=“A-1B--2C--D6E” return 7

    思路:

    变量设置:

    1.int res表示结果

    2.int num表示当前数字

    3.int cur表示     当前字符-‘0’

    4.boolean表示当前当前数字的正负

    绘图1

    程序:

    public static int numSum(String str) {
            //如果字符串为null或者字符串的长度为零,返回0;
            if (str == null || str.length() == 0)
                return 0;
            char[] chars = str.toCharArray();
            int res = 0;
            int num = 0;
            boolean posi = true;
            int cur = 0;
            for (int i = 0; i < chars.length; i++) {
                cur = chars[i] - '0';
                //判断当前字符是否为数字
                if (cur >= 0 && cur <= 9) {
                    //数字增加一位
                    num = num * 10 + (posi ? cur : -cur);
                } else {
                    //一旦遇到了非数字,那么就将当前数字加到结果res上
                    res += num;
                    num = 0;
                    //如果不是负号
                    if (chars[i] != '-') {
                        posi = true;
                    } else {
                        //是负号,但是仍要判断当前字符是否是第一个字符||前一个字符是否是负号
                        if (i == 0 || chars[i - 1] != '-') {
                            posi = false;
                        } else
                            posi = !posi;
                    }
                }
            }
            return res;
        }
  • 相关阅读:
    mysql学习笔记
    MySQL的MySQL 的JDBC的安装与使用
    numpy的使用方法
    Linux命令
    MongoDB数据库
    爬虫请求库之selenium
    解析库beautifulsoup
    Requests属性
    正向代理、反向代理
    爬虫基本原理
  • 原文地址:https://www.cnblogs.com/xiaomoxian/p/5157136.html
Copyright © 2011-2022 走看看