java算法2~求字符串中的数字字串的求和

来源:互联网 发布:js让多个功能延迟执行 编辑:程序博客网 时间:2024/05/22 15:12

要求:

1、时间复杂度O(N)

2、空间复杂度O(1)

3、若有负号‘-’也要算,两个负号算正,小数点不算。


难度不大,我就不考虑正负了,考虑正负就是判断连续遇到的负号个数,奇数为负,偶数为正


package algorithm_database;public class String_SumInt {        public static void main(String[] args){               String a = "as34asdf44asdf2adf112ad100000";        System.out.println(sumStringInt(a));     }            public static int  sumStringInt(String str){                if(str == null){            return 0;        }                char[] charArr = str.toCharArray();        int res = 0;  //总和        int num = 0;        int cur = 0;                for(int i=0;i<charArr.length;i++){            cur = charArr[i]-'0';            if(cur<0 || cur>9){                res+=num;                num=0;            } else {                num = num*10+cur;            }                    }        res+=num;        return res;    }}




1 0