改进版---字符串中数字子串的求和
来源:互联网 发布:外汇业务数据监测中心 编辑:程序博客网 时间:2024/05/29 11:02
【题目】
给定一个字符串str,求其中全部数字串所代表的数字之和。
【原始要求】
1、忽略小数点字符,例如"A1.3",其中包含两个数字1和3。
2、如果紧贴数字子串的左侧出现字符’-‘,当连续出现的数量为奇数时,则数字为负数,连续出现的数量为偶数时,则数字为正数。例如,”A-1BC–12”,其中包含数字是-1和12。
【新增要求】
1、考虑这种情况,”-12-a-2c—d6a”,其中包含的数字为-12,2,-6,返回值为-16。如果采用书中的原始代码思路,不能处理这种负号不连续的情况,所以对代码进行了改进。
【举例】
str=”“,返回36;
str=”a-1b–2c–d6e”,返回7;
class Transform {public: int numSum(string str) { int len = str.length(); if(len <= 0) //当字符串不合法时返回0 return 0; int num = 0; //当前数字 int sum = 0; //总和 int flag = 1; //正负号 for(int i = 0; i < len; ++i){ if(str[i] == '-' ){ flag *= -1; } else{ if(str[i] <= '9' && str[i] >= '0'){ //当前字符为数字时,更新num num = num * 10 + flag * (str[i]-'0'); //如果当前字符的下一个字符不为数字,或者已经到了字符串尾部 //将num加到总和sum上,并重置num和flag if(i+1 < len && (str[i+1] > '9' || str[i+1] < '0')){ sum += num; num = 0; flag = 1; } } } } sum += num; return sum; }};
阅读全文
0 0
- 改进版---字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串问题---字符串中数字子串的求和
- 求字符串中数字子串求和
- 5.2 字符串中数字子串的求和
- [编程之美-08]字符串中数字子串的求和
- 字符串之数字子串求和
- 对字符串中的数字子串求和
- C++字符串数字子串求和
- 字符串中最长的数字子串
- 查找字符串中最长的连续数字子串
- Android7.0中文文档(API)--- ViewSwitcher
- Android Fragment 真正的完全解析(下)
- Mysql总结(一)
- 为什么要使用微服务
- mysql查询表中前一条和后一条数据
- 改进版---字符串中数字子串的求和
- Pycharm内集成python3.6.1版本,安装scikit-learn模块方法
- ElasticSearch安装拼音插件 elasticsearch-analysis-pinyin
- poj 3734 <矩阵快速幂模版>
- 基于极限学习机ELM的人脸识别程序
- 【Netty入门】解决TCP粘包/分包的实例
- Maven插件声明顺序的微妙差别
- 跳棋的挑战,n皇后
- 从底层原理深入理解 PHP 的引用 “&”